如何解决将完成处理程序添加到 Firestore addSnapshotListener
我正在尝试向 addSnapshotListener 方法(func setListener())添加完成处理程序。 我无法处理以下问题;
- 如何向该方法添加完成处理程序?
- 如果我要添加完成处理程序,使用 getDocuments() 方法会更好吗?
- 添加完成处理程序后我将如何调用 setListener() 方法?
我想添加完成处理程序的地方:
import UIKit
import Firebase
class TrueFalseVC: UIViewController {
private var quizRef: CollectionReference!
private var quizListener: ListenerRegistration!
private var quiz = [TrueFalse]()
func setListener() {
quizListener = quizRef
.whereField(GAME,isEqualTo: selectedCategory)
.addSnapshotListener {(snapshot,error) in
if let err = error {
debugPrint("Error fetching data \(err)")
}else {
self.quiz.removeAll()
self.quiz = TrueFalse.parseData(snapshot: snapshot)
}
}
}
}
我的 TrueFalse 类是:
import Foundation
import Firebase
class TrueFalse {
private(set) var question: String!
private(set) var answer: String!
private(set) var game: String!
init(question:String,answer:String,game:String){
self.question = question
self.answer = answer
self.game = game
}
class func parseData(snapshot: QuerySnapshot?) -> [TrueFalse]{
var quiz = [TrueFalse]()
guard let snap = snapshot else {return quiz}
for document in snap.documents {
let data = document.data()
let question = data[QUESTION] as? String ?? ""
let answer = data[ANSWER] as? String ?? ""
let game = data[GAME] as? String ?? ""
let newQuestion = TrueFalse(question: question,answer: answer,game: game)
quiz.append(newQuestion)
}
return quiz
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。