質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2438閲覧

Firebaseで特定の端末に対する通知を安定させる手法がわからない

touho

総合スコア26

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

1クリップ

投稿2019/06/15 11:49

編集2019/06/15 12:11

概要

Androidアプリを作成中です。現在、Firebaseを使って、特定の端末でのイベントをトリガーに、別の特定の端末(一つ)に通知を発信する仕組みを実装するべく、設計を固めようとしているところです。しかし、望みの機能の実装法がわからず、混乱しています。

#詳細
今僕が制作しているアプリの通知機能では以下の3つの要件を満たしている必要があります。

  1. 【不変のID】個々の端末が、通知先を一意に定めるような、時間的に不変な識別情報を保持していること
  2. 【IDの公開性】ユーザーが自身の識別情報を何らかの手法(SNSなど)で遠隔地にいる特定の人物に送信可能であること
  3. 【動的な通知】ユーザーが、パートナーに対し任意のタイミングで通知を発信できること

ところが、僕の調べる限りではFirebaseで利用可能な通知機能の範囲でこれを実現することはできません。

#検討した手法

  1. Firebase Notificationは動的な通知の設定ができない
  2. FCMはXMPP以外では限定的な機能のみ(パートナーの登録に12時間を要する、かつ、想定されていない利用法、IDが公開されるかどうかも怪しい)
  3. XMPPを用いると不変なIDが生成されない

参照先:
Firebase公式ドキュメント:通知の実装について

#検討中

  1. メールの送信で妥協する or 上記の検討した手法2と混ぜる
  2. 他のサービスを利用する
  3. 自前のサーバー上で機能のスクラッチ実装
  4. サーバーを一枚挟んだ上で、Firebaseの枠内で解決できないか模索する

今の所、4番または3番の方針でREST APIを実装してみようか。。。と考えています。
(お恥ずかしながらREST APIを実装した経験がありません。)
ご意見、ご指摘等期待しております。よろしくおねがいします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

特定の端末に通知を送信したいのであれば、 Firebase Admin SDKの方にそのためのAPI が用意されています。そちらを利用すればXMPP等のプロトコル実装について考える必要はありません。送信先の指定に必要なのは、端末をFCMへ登録する際に得られる登録トークン(ご質問で仰っている、不変のIDに当たるもの)です。

サーバー側の実装に特にこだわりがないのであれば、Cloud Functions for Firebaseを利用すると楽でしょう。FCM送信の公式サンプルは以下にあります。
https://github.com/firebase/functions-samples/tree/master/fcm-notifications

REST APIとして公開するのも数行のコードで実装できます。
ドキュメント: https://firebase.google.com/docs/functions/http-events?hl=ja

投稿2019/06/17 07:28

kakajika

総合スコア3131

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

touho

2019/06/17 07:29

ありがとうございます! やってみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問