能否在没有google-services.json配置文件的情况下配置Firebase分析?

6
我希望为我的一个库模块使用Firebase分析。我想以这样的方式编程,即配置文件(google-services.json)应该可以从客户端应用程序文件夹访问,或从客户端侧面进行配置。
有没有一种方法可以实现上述情况?
提前感谢。

重复问题 https://dev59.com/JVkT5IYBdhLWcg3wL8n3#44396850 - Henadzi Rabkin
2个回答

3
您可以按照以下方式手动初始化您的库项目配置,
要了解更多信息,请参考在Android应用中使用多个Firebase项目
还可以通过Firebase在Android上的初始化过程来了解Firebase模块是如何自动初始化的。
对于使用Firebase的Android应用程序,有一个中央FirebaseApp对象来管理所有Firebase API的配置。当启动应用程序时,内容提供程序会自动初始化此对象,您通常不需要与其进行交互。但是,当您想从单个应用程序访问多个项目时,您需要一个不同的FirebaseApp来单独引用每个项目。除了Firebase为您创建的默认实例之外,您需要自己初始化其他实例。
FirebaseOptions options = new FirebaseOptions.Builder()
       .setApplicationId("1:530266078999:android:481c4ecf3253701e") // Required for Analytics.
       .setApiKey("AIzaSyBRxOyIj5dJkKgAVPXRLYFkdZwh2Xxq51k") // Required for Auth.
       .setDatabaseUrl("https://project-1765055333176374514.firebaseio.com/") // Required for RTDB.
       .build();
FirebaseApp.initializeApp(this /* Context */, options, "secondary");

希望我已经回答了你的问题。

3
缺少google_app_id。Firebase Analytics已禁用。现在出现了这个错误。 - Arun Chand
@ArunChand 你在 setApplicationId("mobilesdk_app_id") 中使用了有效的 app_id 吗? - Karthi R
你需要从“google-services.json”文件中获取你的app_id。在“client”下面:[{"client_info" { "mobilesdk_app_id" = "xxxxxx" }}] - Karthi R

2
我找到了有趣的解决方法。请尝试以下步骤: 将您的google-services.json文件放入任何一个提供Firebase集成的示例应用程序中。编译它。 查看路径app/build/generated/res/google-services/debug/values/,应该会生成一个包含在您描述的错误中提到的一堆字符串的values.xml文件。将这些字符串复制到您项目的value.xml文件中即可。

请确认 google-services.json 没有做除此之外的事情。为什么他们发明了自行车,却不建议只是将几个字符串复制粘贴到您的资源中? - Oleksandr Albul

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接