Si j’utilise une migration pour mettre à jour une firebase database et que j’ajoute un champ entier comme celui-ci:
t.integer :foo :default => 0, :null => false
Quel est l’état par défaut des enregistrements existants et nouveaux dans la firebase database? J’espère que la réponse est: – Les deux liront foo comme 0.
Est-ce que default => 0 est nécessaire si j’ai: null => false?
Juste essayer de comprendre la différence entre les deux …
:null => false
indique à votre firebase database de ne pas accepter les valeurs NULL
.
:default => 0
fait deux choses:
NULL
ou rien n’est spécifié dans une requête. Le point 2 s’assure que lorsque vous enregistrez votre nouvel object, vous avez réellement une valeur valide.
Pour répondre à votre question: Si vous ne voulez pas de valeurs NULL
dans votre firebase database, définissez :null => false
, sinon utilisez simplement le paramètre :default
. Attention, ‘0’ et NULL
ne sont pas les mêmes.
Ne pas avoir de valeurs NULL
peut être important à des fins d’indexation ou si vous devez fournir un access direct à la firebase database à un tiers.