2016-10-25 10 views
1

iOSアプリケーションがFirebaseデータベースに書き込む特定のデータセットのみを監視することはできますか?iOS上のFirebase:特定のデータを観察する

高レベルで具体的にお答えします。
私はFirebaseにユーザーごとのデータ(名前、電子メール、didCompleteCourse)を保存しています。
このデータ(各ユーザ)は、iOSアプリケーションによってFirebaseに書き込まれます。
後日、サーバーサイドスクリプトは、他の場所で収集されたいくつかのデータに基づいて、各ユーザーの 'didCompleteCourse'を更新します。基本的には、各ユーザーレコードのそのプロパティのフラグを切り替えることができます。

特定のデバイスから自分のiOSアプリケーションを介してfirebaseにデータが送信されたユーザー/ユーザー(複数のユーザーが特定のデバイス上で自分のアプリケーションにログインした場合)のみ、このフラグがいつ変更されたかを監視して通知を受けたい。

あらゆる種類のコードが役に立ちます。

+0

Firebaseデータベースの特定のノードを監視する必要がありますか? – Dravidian

+0

データベースの構造に関する情報を提供できますか?ユーザーデータの構造だけでなく、それにつながるパスの構造(例えば、各ユーザはユーザIDに対して保存されていますか?) – Prisoner

+0

@Dravidian:いくつかのそのようなノード –

答えて

1

使用してみてください: -

FIRDatabase.database().reference().child("_yourRef").observe(.childChanged, with: { (SnapShot) in 
     print(SnapShot.value) 
     }, withCancel: {(Error) in 
     print(Error.localizedDescription) 
    }) 

これは、ユーザーのアプリケーション内の別々のネットワークスレッドを作成し、いつでもあなたのDBノードは、あなたのこれcompletionBlockがクビになり、取得したデータは、唯一のものであろう、その値を変更しますノード全体が帯域幅を消費するわけではありません。

FIRDataEventTypeさん: -

  • をchildAdded:解雇新しい子ノードがchildRemoved場所

  • に追加されたとき:解雇子ノードがから削除されたとき場所

  • childChanged:焼成位置に子ノードがchildMoved

  • を変更:任意のデータ変更で焼成:子ノードが位置

  • に他の子ノードに対して移動するときに発生場所、および再帰的に任意の子どもたち

関連する問題