2017-10-25 13 views
1

Firestore文書内の配列から項目を追加/削除しようとしていますが、新しい値が追加される代わりに配列全体が置き換えられるたびに発生します。私は、次の両方を試してみました:Firebase Firestore:文書配列から項目を追加/削除する

batch.setData(["favorites": [user.uid]], forDocument: bookRef, options: SetOptions.merge()) 

batch.updateData(["favorites": [user.uid]], forDocument: bookRef) 

Iは、配列の代わりにIは、オブジェクト/辞書を使用することができるが、それは(例えばキーなど)は無関係である追加データを格納意味し、私が必要とするすべてであることを知っていますIDは配列内に格納されます。現在Firestoreでこれが可能ですか?

答えて

2

いいえ。これは不可能です。

多くのクライアントが理論的に配列から要素を同時に追加または削除できるCloud Firestoreのような環境では配列が問題になる傾向があります。命令がわずかに異なる順序で到着すると、エラー、データの破損、または本当に悪い時を過ぎます。したがって、辞書を使用して(個々のキーを指定できる)、または配列全体を置き換える必要があります。

+0

これは私が考えたものです。トッドの確認/ご清聴ありがとう! –

+1

@LucaVenturaこのfirebaseのブログ記事https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.htmlでなぜ「アレイが悪いのか」を知ることができます:) – cutiko

+0

@cutikoリンク。私のケースで辞書を使用すると、キーからアクセスせずに値を簡単に削除できないので、とにかくうまくいったのです:) –

関連する問題