2017-08-08 47 views
7

我想在不使用google-services.json的情況下使用FirebaseOptions初始化Firebase,我在此處關注博客文章https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html使用FirebaseOptions初始化FirebaseOptions

我刪除了FirebaseInitProvider。

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

我想設置默認FirebaseApp在應用程序子類:

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

FirebaseApp.initializeApp(getApplicationContext(), options); 

,似乎一切就OK了,但是當我想記錄一些事件FirebaseAnalytics,然後我得到這個錯誤:缺少google_app_id。 Firebase Analytics已停用。 我不知道是什麼問題。

+0

可能的重複[在單個Android應用中使用多個Firebase帳戶進行谷歌分析](https://stackoverflow.com/questions/45546833/use-multiple-firebase-accounts-in-single-android-app-for- google-analytics) – ceph3us

回答

-1

如果您沒有使用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,不要導致發佈問題時發生錯誤。

如果沒有「工具」命名空間添加到您的清單根標籤,你就必須補充一點,還有:

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

實施的休息會使用FirebaseOptionsFirebase.InitializeApp().是相同的

+1

我們真的需要這個資源文件嗎?我認爲初始化可以在沒有該資源的運行時完成。如果我將使用該資源文件,爲什麼需要Firebase選項?主要想法是在運行時更改Firebase分析。 – rMozes