同步vs swync 4的异步firebase操作?

时间:2018-03-30 18:20:40

标签: ios firebase grand-central-dispatch

Firebase实时数据库上的所有操作和查询是异步还是同步还是两者兼而有之?

除此之外,Firebase身份验证呢?

所以我想我的问题是:我是否需要将Firebase操作放入并发队列,还是将其留在主队列中?

1 个答案:

答案 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操作放入并发队列,而不是在主队列中。