android – 使用FirebaseOptions的Init firebase

我想在没有google-services.json的情况下使用FirebaSEOptions初始化Firebase,我正在关注此处的博客文章 https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html.

删除了FirebaseInitProvider.

<provider
    android:name="com.google.firebase.provider.FirebaseInitProvider"
    android:authorities="${applicationId}.firebaseinitprovider"
    tools:node="remove"/>

我试图在Application子类中设置认的FirebaseApp:

FirebaSEOptions options = new FirebaSEOptions.Builder()
                .setApplicationId("valid_app_id")
                .setGcmSenderId("valid_gcm_sender_id")
                .setApiKey("valid_api_key")
                .build();

FirebaseApp.initializeApp(getApplicationContext(),options);

似乎一切正常,但是当我想将一些事件记录到FirebaseAnalytics时,我收到此错误:缺少google_app_id. Firebase Analytics已停用.
我不知道是什么问题.

解决方法

如果您没有使用google-services.json文件,则JSON中存在的信息需要在某处才能读取插件/代码.您可以在此处执行的操作是使用具有以下属性的字符串资源手动创建XML文件
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

看看here.确保添加google_app_id,没有它会导致错误发布.

如果您没有将“tools”命名空间添加到清单根标记中,则还必须添加它:

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your.package"
    >

其余的实现方式与使用FirebaSEOptions和Firebase.InitializeApp()相同.

相关文章

这篇“android轻量级无侵入式管理数据库自动升级组件怎么实现...
今天小编给大家分享一下Android实现自定义圆形进度条的常用方...
这篇文章主要讲解了“Android如何解决字符对齐问题”,文中的...
这篇文章主要介绍“Android岛屿数量算法怎么使用”的相关知识...
本篇内容主要讲解“Android如何开发MQTT协议的模型及通信”,...
本文小编为大家详细介绍“Android数据压缩的方法是什么”,内...