Firestore文書のフィールドを更新/削除しようとしていますが、名前に「ピリオド」が含まれているフィールドは、それらを更新/削除する。期間がある理由は、オブジェクトのキーとしてURLを使用しているため、これは半一般的な使用例だと思います。名前に "period"という名前のFirestoreフィールドを更新/削除できません。
例:
まず文書を作成します(これは正常に動作します)
db.collection("data").doc("temp").set({
helloworld: {
key1: 'foo'
},
hello.world: {
key1: 'bar'
}
})
あなたが期間なしの要素を削除しようとすると、それが正常に動作します。
db.collection("data").doc("temp").update({
helloworld: firebase.firestore.FieldValue.delete()
})
// Value is Deleted
ピリオドのない要素を削除しようとすると、何もしません。私も
let u = {}
u['hello.world'] = firebase.firestore.FieldValue.delete()
db.collection("data").doc("temp").update(u)
// Nothing Happens!
を試してみた
db.collection("data").doc("temp").update({
hello.world: firebase.firestore.FieldValue.delete()
})
// Nothing Happens!
は、これはバグですか?フィールド名のピリオドはサポートされていますか?要素を作成することはできますが、削除はできません。
興味深いことに、私はこれを試して、これが動作すれば受け入れられた答えとしてマークします。それでも "set"は引用符なしでは動作しますが、 "update"では動作しません。 –
セットはオブジェクト形式のデータに作用し、更新はキー値形式のデータに作用します。 –
残念ながら私のキーは動的なので、このメソッドを実行する文字列リテラルを提供することはできません。 –