0
こんにちは私はFirebaseアプリを持っていて、アプリが起動するとすべてのデータベースをダウンロードしたいと思います。これらはすべて問題なく動作していますが、ダウンロードが完了した時点を知りたいと思います。オブザーバーがいつFirebaseを終了したかを検出する方法
func getAllDevices(completion: @escaping (Bool) -> Void) {
reference.child("devices").queryOrderedByKey().observe(.childAdded) { (snapshot) in
if let data = snapshot.value as? [String: Any] {
self.sync(device: data)
}
// completion(true)
}
私は完了ハンドラを試しましたが、新しいオブジェクトがダウンロードされるたびに呼び出されるため、それはうまくありません。ダウンロードが完了したときに通知を受ける方法はありますか?
最初の子供がすべて読み込まれたことを検出するには、 '.value'イベントを監視する必要があります。ここでは、[Swiftの例](https://stackoverflow.com/questions/46017039/firebase-childadded-and-activity-indicator/46018057#46018057)とJavaScript(同じロジックが適用される)の場合があります。[1](https ://stackoverflow.com/questions/19883736/how-to-discard-initial-data-in-a-firebase-db)、[2](https://stackoverflow.com/questions/12850789/is-there- context-child-added-called-specific-page/12851236#12851236)、[3](https://stackoverflow.com/a/11618929)のような、ある種の方法で、 –
ありがとうございます。私はあなたに問題のおかげで解決する:)。 –