Firebase实时数据库上的所有操作和查询是异步还是同步还是两者兼而有之?
除此之外,Firebase身份验证呢?
所以我想我的问题是:我是否需要将Firebase操作放入并发队列,还是将其留在主队列中?
答案 0 :(得分:1)
关于异步编程的事情是它起初不是很直观。如果你想获取一些数据,那么想要编写类似这样结构的代码是很自然的:
try {
result = database.get("the_thing_i_want")
// handle the results here
}
catch (error) {
// handle any errors here
}
这是一个同步通话,它简短易懂。 get()的结果直接从函数返回,调用代码正在等待它完成。但这正是问题所在。您不希望代码停止等待可能需要很长时间的事情。
式IO /夫特:
Firestore.firestore().document("users/pat")
.getDocument() { (snapshot, err) in
if let snapshot = snapshot {
// handle the document snapshot here
}
else {
// handle any errors here
}
}
如果你问我,我宁愿拥有一个异步API来管理幕后所需的所有线程。因此,始终建议将Firebase操作放入并发队列,而不是在主队列中。