![](/img/trans.png)
[英]How to update an "array of objects" with Firestore and Firebase functions?
[英]How to create array of objects in firebase
我正在開發一個汽車租賃應用程序的項目。 該應用程序可以由具有不同角色的管理員和用戶訪問。 所以目前我正在使用 api / 手動保存管理員添加的汽車 firebase
let vehicle = Vehicle(make: make, model: modell, price: price, mileage: mileage)
db.collection("Admin").document("car").setData(from: vehicle)
其中車輛是 object,具有 make model mileage 等屬性。 現在有了這個功能,我總是保存一個 object。如果我添加一個新的 object,它會覆蓋它我如何在汽車文檔中存儲多個對象。
當您第二次運行上述語句時它是“更新”而不是“添加”的原因是因為您使用的是相同的DocumentID
,您將其指定為“汽車”。
如果您正在運行 for-loop function 以添加多個vehicle
文檔,您可以修改類似於以下示例的代碼。
方法一
let vehicleDocID: Int = 0
let vehicle = Vehicle(make: make, model: modell, price: price, mileage: mileage)
for vehicle in vehicleS {
vehicleDocID += 1
db.collection("Admin").document("\(vehicleDocID)").setData(from: vehicle)
}
或者,您可以簡單地使用 .add() function 來獲取 defaultID,這是我個人推薦的。
方法二
var ref: DocumentReference? = nil
ref = db.collection("Admin").addDocument(data: [
"make": "make",
"model": "modell",
"price": "price",
"mileage": "mileage"
]) { err in
if let err = err {
print("Error adding document: \(err)")
} else {
print("Document added with ID: \(ref!.documentID)")
}
}
最后,如果車輛數量較多(>100),我建議您使用批量寫入將文檔添加到 Firestore,因為它可以確保更好的性能。 對於批量寫入,您可以參考下面的 Firestore 文檔。
https://firebase.google.com/docs/firestore/manage-data/transactions
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.