我正在尝试为firestore数据库配置数据库,但无法这样做,遇到一些错误,并且没有为此提供任何特定的解决方案,我正在使用swift for ios,它基本上是一个聊天应用程序,其后是codelab教程,这是该教程的链接!本教程基于Firebase Realtime数据库,我的要求是Firestore数据库,
感谢您的指导
我尝试转换为Firestore数据库的内容
var messages: [DocumentSnapshot]! = []
fileprivate var _refHandle: CollectionReference!
var ref = Firestore.firestore().collection("messages")
func configureDatabase() {
//ref = Firestore.firestore() // Listen for new messages in the Firebase database
_refHandle = self.ref.addSnapshotListener{ querySnapshot, error in
if let documents = querySnapshot?.documents {
var messages = [DocumentSnapshot]()
for document in documents {
let message = messages(snapshot: document)
message.append(message)
message.clientTable.insertRows(at: [IndexPath(row: message.messages.count-1, section: 0)], with: .automatic)
}
// completion(messages)
}
} as! CollectionReference
}
实时数据库代码
var ref: DatabaseReference!
var messages: [DataSnapshot]! = []
fileprivate var _refHandle: DatabaseHandle?
deinit {
if let refHandle = _refHandle {
self.ref.removeObserver(withHandle: _refHandle)
}
}
func configureDatabase() {
ref = Database.database().reference()
// Listen for new messages in the Firebase database
_refHandle = self.ref.child("messages").observe(.childAdded, with: { [weak self] (snapshot) -> Void in
guard let strongSelf = self else { return }
strongSelf.messages.append(snapshot)
strongSelf.clientTable.insertRows(at: [IndexPath(row: strongSelf.messages.count-1, section: 0)], with: .automatic)
})
}
firestore代码错误
Cannot call value of non-function type '[DocumentSnapshot]'"
at
let message = messages(snapshot: document)
这可能有帮助,也可能没有帮助,但这是一个功能,它可以读取所有消息并将消息ID(documentId)和消息文本打印到控制台。假设我们设置了一个var messsagesArray类来存储每条消息,并拥有一个包含documentId和消息文本的类。