2017-01-30 4 views
0

私は私のような選手にリアルタイム更新を押し出すことができますセクションがあるコーチングアプリを持っている: - 私は把握しようとしている新しいデータが利用可能になったときFirebase通知を送信するには?

を「いいえ練習悪天候に行いますが、実際は金曜日までプッシュされます」このUpdatesTableViewを新しい投稿で更新すると自動通知を送信する方法「新しいアップデートの掲示」のように。

Firebaseデータベースに更新情報を掲載します。変更をリッスンする方法と、すべてのユーザーに通知を送信するタイミングが必要ですか?

私は既にfirebaseの通知を自分のアプリケーションに設定していますが、アップデートを送信するたびにFirebaseコンソールを利用してこれらの通知をプッシュする必要があります。誰かがこれを自動化する方法を知っていますか?ありがとう!

答えて

0

listening/Observingからdata changeまでは、firebaseの特定の場所で簡単に行うことができます。新しい子がそのパスに追加されると、関連するブロックが呼び出されます。

あなたのケースでは、UpdatesTableViewを見ることができます。更新を投稿するたびに、すべてのユーザーに通知を送信するブロックを呼び出します。

あなたはスウィフトを使用している場合:

func observe(_ eventType: FIRDataEventType, with block: @escaping (FIRDataSnapshot) -> Void) -> UInt 

をあなたはObjective Cの使用している場合:

observeEventType:withBlock:公式firebaseドキュメントによると

- (FIRDatabaseHandle) 
observeEventType:(FIRDataEventType)eventType 
    withBlock:(nonnull void (^)(FIRDataSnapshot *_Nonnull))block; 

をするために使用されます特定の場所でdata changesを聞くに。これは、 Firebaseデータベースからデータを読み取る主な方法です。ブロックは最初のデータ に対してトリガーされ、データが変更されるたびに再度トリガーされます。

そして、あなたはデータの変更を聞いて停止したいときはいつでも、あなたはremoveObserverWithHandle

使用removeObserverWithHandleを使用することができます。アップデートの受信を停止します。 - パラメーター: eventType待機するイベントのタイプ。 - パラメータ:ブロック ブロックは、初期データと更新で呼び出される必要があります。 FIRDataSnapshotとしてデータを渡したのは です。 - リターン:removeObserverWithHandle使用して、このブロック後で 登録解除に使用されたハンドル:より詳細な情報については

を、iOS firebase#Attaching Observers to read data Documentationをお読みください。

また、Notificationsを効果的に送信する場合は、Firebase Notificationを使用できます。それを見てみましょう。私はあなたのusecaseについて正しく知っていませんが、私はこれが助けになると思います。

+0

もの: #1:アプリが開いていない場合、これはまだ動作しますか? #2:事前定義済みの通知メッセージをアプリで作成するにはどうすればよいですか? –

+0

あなたはfirebase通知を使用してユーザーに通知していますか? –

+0

はい、OBJ-C –

0

フォアグラウンドまたはバックグラウンドのアプリケーションに関係なく、Firebaseのデータが変更されたときにいつでもユーザーに通知するために、同じ問題が発生しました。

私は、ChildEventListenerをバックグラウンドで動作し続けるサービスでバインドすることで実現しました。すべてのchildAddedイベント・データはsqlited dbに格納され、新しい通知オブジェクトが作成されてユーザーに表示されます。私は疑問に思って

+0

なぜデータをsqlited dbに格納しますか? – juzamn

関連する問題