刪除一對多的關係我執行如下的批處理:在火力雲公司的FireStore
batch.set(doc, {
"Users": {
[userKey]: null
}
}, { merge: true })
它把空值的關係,但並沒有將其刪除。
我需要刪除對象的字段和值,因爲它在實時數據庫中不會保留空值。
如果我使用firebase.firestore.FieldValue.delete()只適用於對象而不適用於其字段。
刪除一對多的關係我執行如下的批處理:在火力雲公司的FireStore
batch.set(doc, {
"Users": {
[userKey]: null
}
}, { merge: true })
它把空值的關係,但並沒有將其刪除。
我需要刪除對象的字段和值,因爲它在實時數據庫中不會保留空值。
如果我使用firebase.firestore.FieldValue.delete()只適用於對象而不適用於其字段。
無論好壞,Firestore將null
的值視爲不同於不存在的字段,因此將值設置爲null
將無法達到您想要的值。
FieldValue.delete()
刪除領域,而不是文檔的方式,所以這應該刪除領域:
batch.set(doc, {
"Users": {
[userKey]: firebase.firestore.FieldValue.delete()
}
}, { merge: true });
然而有目前在發佈的SDK,防止這種按預期工作中的錯誤。現在使用
batch.update(
'Users.userKey',
firebase.firestore.FieldValue.delete());
我試過這個:「[userKey]:firebase.firestore.FieldValue.delete()」,但失敗表示它只能與根字段一起工作。 –
然後試試這個:''Users.userKey',firebase.firestore.FieldValue.delete()「,但我不知道如何將」userKey「設置爲動態值。 –
如果你想在一個名爲userKey的變量中刪除userKey,你可以連接:'Users'。 + userKey。字段路徑只是字符串。 –
您是否嘗試過使用batch.doc(docid).collection('Users').doc('userKey').delete()? – Kato
batch.doc(docid).collection('Users').doc('userKey').delete()將用'Users'子集合刪除'userKey'文檔,但不刪除文檔中的字段' FieldValue.delete()'是做到這一點的方法。 –