在运行时为 Analytics logEvents 初始化 Firebase 不起作用

Posted

技术标签:

【中文标题】在运行时为 Analytics logEvents 初始化 Firebase 不起作用【英文标题】:Initializing Firebase at Runtime for Analytics logEvents not working 【发布时间】:2021-11-25 16:59:36 【问题描述】:

我有一个需要 2 个 Firebase 项目的应用。根据使用的登录选项,我需要 logEvents 到特定的 Firebase 项目。

我不能根据构建变体/风格在不同目录中使用多个google-services.json,因为它需要是一个应用程序。因此,我

    从项目中删除google-services.json

    在 gradle 中评论了 apply plugin: 'com.google.gms.google-services'

    使用 google-services.json 文件中的值使用以下代码初始化 Firebase

     val firebaseOptions = Builder()
            .setApplicationId("client.client_info.mobilesdk_app_id")
            .setApiKey("client.client_info.current_key")
            .setDatabaseUrl("project_info.firebase_url")
            .setGcmSenderId("project_info.project_number")
            .setStorageBucket("project_info.storage_bucket")
            .setProjectId("project_info.project_id")
            .build()
    
     FirebaseApp.initializeApp(context, firebaseOptions, "[DEFAULT]")
    

但我遇到了错误。

E/FA: Missing google_app_id. Firebase Analytics disabled.
E/FA: Uploading is not possible. App measurement disabled

有没有办法解决这个问题?我需要在用户操作和 logEvents 到 Firebase 后在运行时初始化 Firebase

【问题讨论】:

从您提供的代码中,我看不出有什么问题。你能放更多的代码来看看你是如何获取传递给构建器的参数的吗?特别是 applicationId @SergioPardo 我已更新问题以查看构建器参数的来源 【参考方案1】:

我认为您尝试实现的目标是不可能的,我进一步挖掘,您获得的经验是预期的行为:分析不适用于构建器(自定义)初始化.

您可以在此处查看来自 Firebase 支持团队的声明:Unable to make Firebase work for a non Gradle build: Missing google_app_id. Firebase Analytics disabled

然而,我在 GitHub 上的一个线程上发现了这两种解决方法,但它们不适用于您的用例,因为它是在编译时完成的。

解决方法: https://github.com/firebase/firebase-android-sdk/issues/66#issuecomment-697341745 https://github.com/firebase/firebase-android-sdk/issues/66#issuecomment-755434814

我建议您将您的分析转移到另一个提供商,以防这对您不利,或者只是将分析留在单个项目上并添加一个属性来区分用户/流。

【讨论】:

以上是关于在运行时为 Analytics logEvents 初始化 Firebase 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

使用 Firebase Analytics 事件记录 OneSignal 推送通知

我可以在 Firebase Analytics 事件中使用非英文字母吗?

无法使用 Unity 在 Firebase-Analytics 中获取自定义参数

Firebase Analytics - 自定义事件,查看百分比而不是值 (iOS)

Firebase 分析 iOS

在 firebase 中获取个人用户详细信息