簡體   English   中英

如何在 firebase 中創建對象數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM