【问题标题】:Initialize FirebaseMessage & FirebaseAnalytics with non-default FirebaseApp使用非默认 FirebaseApp 初始化 FirebaseMessage 和 FirebaseAnalytics
【发布时间】:2019-12-24 15:50:19
【问题描述】:

我使用

初始化我的 FirebaseApp
val prodFirebaseOptions: FirebaseOptions = FirebaseOptions.Builder()
    .setApplicationId(context.getString(R.string.prod_google_app_id)) // Required for Analytics.
    .setApiKey(context.getString(R.string.prod_google_api_key)) // Required for Auth.
    .setDatabaseUrl(context.getString(R.string.prod_firebase_database_url)) // Required for RTDB.
    .setGcmSenderId(context.getString(R.string.prod_gcm_defaultSenderId))
    .setProjectId(context.getString(R.string.prod_project_id))
    .setStorageBucket(context.getString(R.string.prod_storage_bucket))
    .build()
FirebaseApp.initializeApp(context, prodFirebaseOptions, "production")
val firebaseApp = FirebaseApp.getInstance("production")

然后初始化我使用的所有服务:

val firestore = FirebaseFirestore.getInstance(firebaseApp)
val auth = FirebaseAuth.getInstance(firebaseApp)
val storage = FirebaseStorage.getInstance(firebaseApp)

当我想初始化我的 FirebaseMessaging 和 FirebaseAnalytics 时,没有接受 FirebaseAppgetInstance 方法:

val messaging = FirebaseMessaging.getInstance() // will use "default" app instead of providing 
val analytics = FirebaseAnalytics.getInstance() // will use "default" app instead of providing 

除此之外,没有办法用非默认应用初始化FirebaseMessagingService

这个问题有解决办法吗?我可以稍微更改一下默认应用吗?


版本:

  • com.google.firebase:firebase-messaging:20.1.0
  • com.google.firebase:firebase-analytics:17.2.1
  • com.google.firebase:firebase-core:17.2.1

【问题讨论】:

  • 如果您想从应用程序的google-services.json 中定义的项目以外的项目接收消息,请查看不需要FirebaseMessaging/FirebaseApp@ 的单独实例的此答案987654321@

标签: android firebase firebase-cloud-messaging firebase-analytics


【解决方案1】:

这是不可能的。这些产品在很大程度上依赖于每个应用只能有一个实例这一事实。

对于云消息传递尤其如此,其中传入消息实际上由 Play 服务(在另一个特权进程中运行)处理,并且必须假设只有一个已安装的 Firebase 应用实例(默认)可以处理消息.

Google Analytics(分析)的问题在于,只有一个应用可以记录用户行为。这种行为可以通过任何 API 自动发生。两个应用自动记录相同的行为是没有意义的,因此只允许默认应用处理该数据。

【讨论】:

猜你喜欢
  • 2020-08-16
  • 1970-01-01
  • 1970-01-01
  • 2022-10-05
  • 1970-01-01
  • 1970-01-01
  • 2017-10-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多