我正面臨 firestore 陣列物件的洗掉/更新問題。這是我的子集合

我可以選擇flutter web app洗掉或更新問題。
questionnaire是一個陣列,所有索引都是map. 有沒有可能直接洗掉或更新索引的方法?我見過幾個解決方案,其中所有陣列元素都被讀回應用程式并洗掉我們需要洗掉的專案并添加需要更新的專案。我將有大約 150 個問題在一個陣列中,所以我認為從性能的角度來看這不是一種有效的方法。所以我嘗試了幾種方法來洗掉資料
FirebaseFirestore.instance
.collection('exam')
.doc(examDocID)
.collection('questionnaire')
.doc(_questionnaireDocID)
.update({
'questionnaire': {'$index': FieldValue.delete()}
}).then((_) {
print('question deleted');
}).catchError((onError) {
print(onError);
});
和
'questionnaire.$index': FieldValue.delete()
'questionnaire': FieldValue.arrayRemove([index])
它曾經從我的大多數嘗試中洗掉陣列中的所有元素。有人可以讓我知道是否有任何解決方法可以解決此問題
uj5u.com熱心網友回復:
有沒有可能直接洗掉或更新索引的方法?
不,那里沒有。
我見過幾個解決方案,其中所有陣列元素都被讀回應用程式并洗掉我們需要洗掉的專案并添加需要更新的專案。
是的,就是這樣處理這種情況。
我將有大約 150 個問題在一個陣列中,所以我認為從性能的角度來看這不是一種有效的方法。
這不是低效,而是相反。除此之外,當涉及到計費時,它僅意味著一次檔案讀取和一次檔案寫入,無論您一次性從陣列中添加或洗掉多少項。
如果要使用 洗掉陣列中的特定物件FieldValue.delete(),則應使用物件中的所有資料,而不是部分資料。我什至寫了一篇關于更新 Cloud Firestore 中的物件陣列的文章:
- 如何更新 Firestore 中的物件陣列?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/373231.html
標籤:数组 扑 目的 谷歌云firestore
下一篇:將物件重構為不同的型別
