Firebase Cloud Messagingクライアントを作成します。私は、ユーザーからID、プロジェクトID、パッケージ名などを取得し、私のgoogle-service.jsonファイルを編集したい。テキストビューから、ユーザーは情報を変更したり、プロジェクト情報で使用することができます。これを行う方法はありますか?アプリからルートフォルダにあるgoogle-service.jsonを編集するにはどうすればよいですか?
あなたの返信ありがとうございます!
Firebase Cloud Messagingクライアントを作成します。私は、ユーザーからID、プロジェクトID、パッケージ名などを取得し、私のgoogle-service.jsonファイルを編集したい。テキストビューから、ユーザーは情報を変更したり、プロジェクト情報で使用することができます。これを行う方法はありますか?アプリからルートフォルダにあるgoogle-service.jsonを編集するにはどうすればよいですか?
あなたの返信ありがとうございます!
ユーザー設定可能なクライアントを作成することは珍しいことです。非常に特別な要件が必要です。 FCMクライアントの構成のタイプが可能であるとは思わない。私は私の推論を説明します。
まず、google-services.json
ファイルがビルド時間、ない実行時に処理されます。 .../app/build/generated/res/google-services/{buildType}/values/values.xml
に文字列リソースのXMLファイルを生成するGoogle Services Gradle Pluginによって解析されます。
Firebaseを使用するアプリケーションが起動すると、FirebaseInitProviderはそれらの文字列リソースを使用して自分自身を設定し、FirebaseAppのデフォルトインスタンスを作成します。デフォルトのFirebaseApp
はFirebaseMessaging.getInstance()によって使用されます。
いくつかのFirebase API、FirebaseDatabaseおよびFirebaseStorageは2つの例です。FirebaseApp
パラメータを受け入れる方法を提供してください(getInstance()
)。これらのために、google-services.json
によって通常提供される値を指定するためにFirebaseApp
のカスタムを作成してinitializeApp()とFirebaseOptions.Builderを作成することができます。しかしFirebaseMessagingはFirebaseApp
パラメータを受け入れるgetInstance()
を持たず、google-services.json
ファイルを使用して作成されたデフォルトのFirebaseApp
を強制的に使用します。
複数のプロジェクトからメッセージを受信するアプリケーションを登録することができます。デフォルトでは、google-services.jsonファイルで定義されたプロジェクトが使用されますが、getTokenメソッドを使用して別のインスタンスIDトークンを要求し、別の送信者IDを手動で指定することができます。
ユーザが別の送信者IDを定義した場合は、getToken
を呼び出して、最初に生成されたトークンと手動で生成したトークンの両方に送信されたメッセージをアプリで受信します。
したがって、複数のFirebaseクラウドメッセージングサーバに「サインイン」しようとしていますか?それはチャットルームではない - 私はそれのように動作しません –