2016-08-04 3 views
3

Firebase Cloud Messagingクライアントを作成します。私は、ユーザーからID、プロジェクトID、パッケージ名などを取得し、私のgoogle-service.jsonファイルを編集したい。テキストビューから、ユーザーは情報を変更したり、プロジェクト情報で使用することができます。これを行う方法はありますか?アプリからルートフォルダにあるgoogle-service.jsonを編集するにはどうすればよいですか?

あなたの返信ありがとうございます!

+0

したがって、複数のFirebaseクラウドメッセージングサーバに「サインイン」しようとしていますか?それはチャットルームではない - 私はそれのように動作しません –

答えて

0

ユーザー設定可能なクライアントを作成することは珍しいことです。非常に特別な要件が必要です。 FCMクライアントの構成のタイプが可能であるとは思わない。私は私の推論を説明します。

まず、google-services.jsonファイルがビルド時間、ない実行時に処理されます。 .../app/build/generated/res/google-services/{buildType}/values/values.xmlに文字列リソースのXMLファイルを生成するGoogle Services Gradle Pluginによって解析されます。

Firebaseを使用するアプリケーションが起動すると、FirebaseInitProviderはそれらの文字列リソースを使用して自分自身を設定し、FirebaseAppのデフォルトインスタンスを作成します。デフォルトのFirebaseAppFirebaseMessaging.getInstance()によって使用されます。

いくつかのFirebase API、FirebaseDatabaseおよびFirebaseStorageは2つの例です。FirebaseAppパラメータを受け入れる方法を提供してください(getInstance())。これらのために、google-services.jsonによって通常提供される値を指定するためにFirebaseAppのカスタムを作成してinitializeApp()FirebaseOptions.Builderを作成することができます。しかしFirebaseMessagingFirebaseAppパラメータを受け入れるgetInstance()を持たず、google-services.jsonファイルを使用して作成されたデフォルトのFirebaseAppを強制的に使用します。

0

複数のプロジェクトからメッセージを受信するアプリケーションを登録することができます。デフォルトでは、google-services.jsonファイルで定義されたプロジェクトが使用されますが、getTokenメソッドを使用して別のインスタンスIDトークンを要求し、別の送信者IDを手動で指定することができます。

ユーザが別の送信者IDを定義した場合は、getTokenを呼び出して、最初に生成されたトークンと手動で生成したトークンの両方に送信されたメッセージをアプリで受信します。

関連する問題