在Firestore中有什么方法可以获取单个数组中的数据列表,例如..在Firebase RealTimeDatabase中,我们通过调用单个值而不是使用ForEachLoop来获取数据列表...例如,在realtimeDatabase中,我们通过:
var messageArray : [Message] = [ ] ()
Database.database().reference.child("messages").observe( .childAdded , with : { (snapshot) in
let snapShotValue = snapshot.value
let text = snapShotValue["text"] as! String
let username = snapShotValue["username"] as! String
let message = Message( text ,username)
self.messageArray.append(message)
}
但是在Firestore中,我们必须使用ForLoop,这样就可以了,但是在某些情况下,我必须在Firestore中使用RealTimeDatabase选项.....例如,在Firestore中,我们使用了:
FireStore.firestore().collection("messages").getDocuments { (snapshot , error ) in
for document in snaphot.document {
let data = document.data( )
let text = data["text"] as! String
let username = data["username"] as! String
let message = Message( text , username)
self.messageArray.append(message)
}
}
那么有什么办法可以像将FireBase RealTimeDatabase一样将Firestore的数据作为整个ObjectArray获取
答案 0 :(得分:0)
您可以将所有对象数据存储在这样的数组中:
let allData = snapshot.documents.compactMap { $0.data() }