簡體   English   中英

從子集合 Firestore 中獲取文檔 swiftUI

[英]getting documents from a subcollection Firestore swiftUI

我正在嘗試從 Firestore 的子集合中的文檔中檢索數據,但它在執行后返回一個空數組。

我嘗試執行以下操作。

    @Published var OrdersID = [String]()

    func fetchOrdersID(){
        FirebaseManager.shared.firestore.collection("Users").document(id).collection("OrdersID").getDocuments { snapshot, error in
            guard let documents = snapshot?.documents else {
                print("No documents")
                return
            }
            DispatchQueue.main.async {
                self.OrdersID = documents.map{ d in
                    return d["id"] as? String ?? ""
                }
            }
        }
    }

但它仍然在 function 之外返回一個空的 OrdersID 數組,並在其中返回正確的數組列表(IMAGE 1 顯示了這一點,訂單 ID 是 OrdersID 數組IMAGE 1的內容)

來自 firestore 的數據表

您可以嘗試 escaping 完成..

  @Published var OrdersID = [String]()

func fetchOrdersID(withCompletion completion: @escaping ((_ orderID: String) -> (Void))) {
    FirebaseManager.shared.firestore.collection("Users").document(id).collection("OrdersID").getDocuments { snapshot, error in
        guard let documents = snapshot?.documents else {
            print("No documents")
            return
        }
        
        let orderID = documents["id"] as? String ?? ""

        completion(orderID)
    }
} 

然后當你go來電話時,你可以添加到OrdersId ...

fetchOrdersID { orderID in 
   OrdersID.append(orderID)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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