无法将实时数据库代码转换为Firestore代码

问题描述 投票:0回答:1

我正在尝试为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)
ios swift firebase google-cloud-firestore
1个回答
1
投票

这可能有帮助,也可能没有帮助,但这是一个功能,它可以读取所有消息并将消息ID(documentId)和消息文本打印到控制台。假设我们设置了一个var messsagesArray类来存储每条消息,并拥有一个包含documentId和消息文本的类。

© www.soinside.com 2019 - 2024. All rights reserved.