2017-11-26 6 views
1

私は正しいと思いますし、FirebaseにはchildAddedメソッドとリスナーがあります。これは、すべてのデータが最初に読み込まれた後、リスナーが新しいデータの追加/変更/Firestoreには、FirebaseのchildAdded(swiftを使用)と同等のリスナーがありますか?

私のアプリをロードするとき、私はデータベースで次のように呼び出すFirestoreを使用する:

func loadMessageRequests() 
     { 

      defaultStore?.collection("requests").getDocuments() { (querySnapshot, err) in 
       if let err = err { 
        print("Error getting documents: \(err)") 
       } else 
etc. 

そして、私が要求して辞書を取り込みます。

しかし、私はまた、すべての要求はなど、追加された場合は、DBへの変更をリッスンしたいと現時点で私がやっコントローラで別のリスナーを持って聞いて

let listener = model.defaultStore?.collection("requests") 
      .addSnapshotListener { querySnapshot, error in 

そして、私はちょうどそこにすべてのデータを最初にロードしている間、私はデータベース上のリスナーを持つことができるchildAddedの同等があったと思っていた。

ありがとうございました。

答えて

1

Firestoreでは、APIは若干異なりますが、探している情報と機能は引き続き利用できます。

Firestoreには1つのタイプのリスナーしかありません。それにはaddSnapshotListenerを呼び出して接続します。これは、初期値に対しては即座に起動し、それ以降はデータへの変更に対して起動します。

スナップショットリスナーが起動すると、更新データおよびがそのデータの変更に関する情報を含むQuerySnapshotになります。変更はdocumentChanges arrayにカプセル化されています。それぞれのDocumentChangeには、文書が追加、削除、または変更されたかどうかを示すtypeがあります。

この方法の簡単な例は、FirebaseUI for Androidにあります。 FirebaseUI iOS library listens to the same protocolしかし、どういうわけか私はそれが何をしているかを解析するのがずっと難しいと感じています。

+0

Thx @Frank。それは素晴らしいことです。 – Mike

関連する問題