gpt4 book ai didi

android - 不使用 google-services.json 支持多个项目的 FirebaseMessaging

转载 作者:行者123 更新时间:2023-11-29 17:13:25 24 4
gpt4 key购买 nike

我知道创建一个名为 FirebaseApp 的能力带有自定义选项的实例,例如 FirebaseDatabase , 但我特别需要使用 FirebaseMessagaging 的能力针对不同的(在运行时确定的)Firebase 项目。

我遇到的问题是 FirebaseMessaging.getInstance()不支持名称参数。

这有可能吗?

我需要支持单独项目的原因是我们的客户端连接到不同的客户服务器,因此每个客户都有自己的 firebase 帐户并生成自己的通知。

如果不可能,是否有任何方法可以将一个客户与另一个客户隔离开来,这样他们就不可能向另一个客户的设备发送通知(假设他们可以通过某种方式获得有效的目标设备 token )?

最佳答案

The Firebase Blog contains a post about this exact issue ,并提供了如何处理它的指南。

博文描述了两个步骤:

  1. 禁用 FirebaseInitProvider

将此添加到 AndroidManifest.xml 以禁用默认初始化代码:

<provider
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:authorities="${applicationId}.firebaseinitprovider"
tools:node="remove"
/>
  1. 调用 FirebaseApp.initializeApp(Context, FirebaseOptions)

一旦准备好必要的配置,就可以自行初始化 Firebase:

FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
.setApplicationId("1:0123456789012:android:0123456789abcdef")
.setApiKey("your_api_key")
.setDatabaseUrl("https://your-app.firebaseio.com")
.setStorageBucket("your-app.appspot.com");
FirebaseApp.initializeApp(this, builder.build());

Google Services Plugin documentation 描述了如何从 JSON 中获取您需要的值:

{YOUR_CLIENT} 是包含 client_info/android_client_info/package_nameclient 对象,与您的包名称(应用程序 ID)相匹配。

google_app_id:{YOUR_CLIENT}/client_info/mobilesdk_app_id

gcm_defaultSenderId:project_info/project_number

default_web_client_id: {YOUR_CLIENT}/oauth_client/client_id (client_type == 3)

ga_trackingId:{YOUR_CLIENT}/services/analytics-service/analytics_property/tracking_id

firebase_database_url: project_info/firebase_url

google_api_key:{YOUR_CLIENT}/api_key/current_key

google_crash_reporting_api_key:{YOUR_CLIENT}/api_key/current_key

关于android - 不使用 google-services.json 支持多个项目的 FirebaseMessaging,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39913573/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com