我正在嘗試通過 SwiftUI 從 Firestore 中的陣列中洗掉特定物件。以下函式洗掉整個監視串列。我錯過了什么?
func removeFromWatchlist() {
if let uid = Auth.auth().currentUser?.uid {
let docRef = db.collection("user").document(uid) // company.symbol = "AAPL"
docRef.updateData(["watchlist": FieldValue.arrayRemove([company.symbol])]) { error in
if error == nil {
print("Successful deleted array")
}
}
}
}
這是我的 Firestore 結構:

uj5u.com熱心網友回復:
要從陣列中洗掉專案,FieldValue.arrayRemove您必須指定存盤在陣列中的準確、完整的資料。
假設您的company.symbolis AAPL,該呼叫FieldValue.arrayRemove([company.symbol]會從陣列中洗掉該確切字串 - 而不是AAPL您在其下具有物件的鍵。
您必須將檔案中的整個陣列讀入您的應用程式代碼,將其洗掉,然后將整個修改后的陣列寫回檔案。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/375806.html
標籤:火力基地 谷歌云firestore 迅捷
