Firebase保存数据方法异步或同步

时间:2016-11-13 08:02:58

标签: ios swift firebase-realtime-database swift3

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

1 个答案:

答案 0 :(得分:0)

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

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

例如,这是react-geosuggest的API参考文档:

  

updateChildValues:withCompletionBlock

     

SWIFT

     

updateChildValues:withCompletionBlock:

     

参数

     

values - 要更改的密钥及其新值的字典

     

- 在Firebase数据库服务器上写入更新后触发的块

func updateChildValues(values: [NSObject : AnyObject], withCompletionBlock block: (NSError?, FIRDatabaseReference) -> Void)方法是客户端操作;它不需要与Firebase服务器交互,这是用户未连接到数据库时可以运行的原因之一。由于它不需要与服务器交互,因此它是同步的并立即返回对新位置的引用,这保证是唯一的。如果您想详细了解childByAutoId生成的密钥,请阅读此博文The 2^120 Ways to Ensure Unique Identifiers