2016-11-13 89 views
0

Firebase保存数据方法(如childByAutoId和updateChildValues异步或同步?似乎没有地方可以传入完成处理程序,所以我猜测它们是同步的,但我不确定,因为Firebase会使这些常用方法同步,似乎有点奇怪(出于性能目的)。Firebase保存数据方法异步或同步

回答

0

与几乎所有的现代网络一样,与Firebase数据库进行交互是异步操作。这就是为什么Firebase数据库API中的大多数方法都可以采用完成块。

对于写入操作,块有时是可选的,因为有些情况下您可能不想指定完成块。

例如,这里是为updateChildValues:withCompletionBlock API的参考文档:

updateChildValues:withCompletionBlock:

SWIFT

func updateChildValues(values: [NSObject : AnyObject], withCompletionBlock block: (NSError?, FIRDatabaseReference) -> Void)

参数

- 键的字典改变和它们的新值

- 更新已被写入了火力地堡数据库服务器

childByAutoId方法后,会触发块客户端操作;它不需要与Firebase服务器交互,这是用户未连接到数据库时可以运行的原因之一。由于它不需要与服务器进行交互,因此它是同步的并立即返回对新位置的引用,该引用保证是唯一的。如果您想了解更多关于childByAutoId生成的密钥,请阅读此博文The 2^120 Ways to Ensure Unique Identifiers