專家,問題在Android中手動設置火力地堡默認的應用程序參數
出於安全考慮,我們決定不使用谷歌與services.json和手動設置FirebaseApp默認參數。我正在關注博文here。我們使用的是Firebase SDK 10.2.6版本。
儘管我能夠成功設置FirebaseApp DEFAULT參數,但我仍收到錯誤消息: 缺少google_app_id。 Firebase Analytics已停用。
正如你從下面的代碼可以看到的,我在設置它之後檢查API密鑰,以便看起來該部分是正確的。
任何想法非常感謝!
在我的AndroidManifest.xml:
<provider
android:name="com.google.firebase.provider.FirebaseInitProvider"
android:authorities="${applicationId}.firebaseinitprovider"
tools:node="remove"
/>
<provider
android:name="com.company.myapp.CustomFirebaseInitProvider"
android:authorities="${applicationId}.firebaseinitprovider"
/>
我的自定義內容提供商:
public class CustomFirebaseInitProvider extends ContentProvider{
public CustomFirebaseInitProvider() {
}
public void attachInfo(Context var1, ProviderInfo var2) {
super.attachInfo(var1, var2);
}
public boolean onCreate() {
// Set custom options
FirebaseOptions.Builder builder = new FirebaseOptions.Builder()
.setApiKey("valid_key")
.setApplicationId("valid_app_id")
.setGcmSenderId("valid_sender_id")
.setDatabaseUrl("valid_db_url")
.setStorageBucket("valid_storage_bucket");
if(FirebaseApp.initializeApp(this.getContext(), builder.build()) == null) {
Log.i("FirebaseInitProvider", "FirebaseApp initialization unsuccessful");
} else {
Log.i("FirebaseInitProvider", "FirebaseApp initialization successful");
}
List<FirebaseApp> appList = FirebaseApp.getApps(this.getContext());
for (int i=0; i< appList.size(); i++)
{
FirebaseApp app = appList.get(i);
String apiKey = app.getOptions().getApiKey();
Log.d("TAG",apiKey);
}
return false;
}
@Nullable
public Cursor query(Uri var1, String[] var2, String var3, String[] var4, String var5) {
return null;
}
@Nullable
public String getType(Uri var1) {
return null;
}
@Nullable
public Uri insert(Uri var1, ContentValues var2) {
return null;
}
public int delete(Uri var1, String var2, String[] var3) {
return 0;
}
public int update(Uri var1, ContentValues var2, String var3, String[] var4) {
return 0;
}
}
好像firebase sdk仍然在尋找string.xml中的參數。如果我在我的strings.xml中手動添加了有效密鑰 ,那麼我會通過該錯誤。但是,爲什麼它沒有從FirebaseOptions.Builder獲取密鑰? –
dutchman711
錯誤消息來自com.google.android.gms.internal下的類,因此出現Google Play服務錯誤。 – dutchman711