FireStoreにデータを投入する時に、値がundefinedのpropertyがあると怒られる
1105 ワード
掲題の通り。
undefinedを含むオブジェクトをaddやsetで渡すとエラーを投げる。
fireStoreのNull型に自動変換とかはしてくれないし、
そのプロパティだけ自動で省くといったような気の利いたことはしてくれない。
スキーマレスとは言っても受け入れられないものはある。
typescriptで言うところの
type HOGE = {
fuga?:someType
}
のようなプロパティがundefined可能性もあるオブジェクトを投入する場合は注意。
(なお、上記の場合fugaプロパティ自体が存在しなければセーフ。
fugaプロパティが存在してかつundefinedが入っているとアウト。)
対応策
- undefinedの場合はフィールドを消す(deleteを使う)
- undefinedの場合はnullに変換する(nullならfirestoreのNULL型になる)
- update系の場合なら
firebase.firestore.FieldValue.delete()
に変換する(フィールド自体をfirestore上に残したくない場合) ただし、create処理でfirebase.firestore.FieldValue.delete()
を使うとこれまたエラーを吐かれるので注意
- Typescriptを使った上で、そもそもundefinedをpropに持ちうるような型定義をしない
firebase.firestore.FieldValue.delete()
に変換する(フィールド自体をfirestore上に残したくない場合) ただし、create処理でfirebase.firestore.FieldValue.delete()
を使うとこれまたエラーを吐かれるので注意Author And Source
この問題について(FireStoreにデータを投入する時に、値がundefinedのpropertyがあると怒られる), 我々は、より多くの情報をここで見つけました https://qiita.com/xx2xyyy/items/d0d3058f0c6f8cd52326著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .