2016-11-13 90 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