我剛剛開始使用 Firebase 身份驗證,我遵循了一些教程,包括 Firebase 的文檔,但無論我做什么,FirebaseAuth.getInstance() 總是返回 null。嘗試了半天,我決定把之前做的和Authentication相關的東西都刪掉,重新開始,這樣我就只用FirebaseAuth變量的聲明和初始化了,如下:在類變量中初始化:private FirebaseAuth mAuth;然后在 onCreate() 方法中我調用了一個初始化firebase變量和引用的方法,所以我調用了以下方法:private void initFirebase() //initialize firebase { FirebaseApp.initializeApp(this); mAuth = FirebaseAuth.getInstance(); mFirebaseDatabase=FirebaseDatabase.getInstance(); mDatabaseReference=mFirebaseDatabase.getReference().child("users"); mEventsReference=mFirebaseDatabase.getReference().child("events"); mStorageRef= FirebaseStorage.getInstance().getReference(); defaultRef = mStorageRef.child("usersProfilePic/"); //Assigning default reference for storage }我在 build.gradle 中的依賴項是:apply plugin: 'com.android.application'android { compileSdkVersion 28 /*dataBinding { enabled = true; }*/ defaultConfig { applicationId "com.example.android.aln4" minSdkVersion 16 targetSdkVersion 28 versionCode 1 multiDexEnabled true versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { targetCompatibility 1.8 sourceCompatibility 1.8 }}dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) //noinspection GradleCompatible testImplementation 'junit:junit:4.12' //google maps api implementation 'com.google.android.gms:play-services-maps:16.0.0' implementation 'com.google.android.gms:play-services-location:16.0.0' implementation 'com.google.android.gms:play-services-places:16.0.0'在 Firebase 身份驗證網站本身中,我已經在登錄方法中啟用了身份驗證服務。所以,如果有人能告訴我這里出了什么問題,我會很高興的,因為我在過去的 6 個小時里都在試圖弄清楚......
3 回答

墨色風雨
TA貢獻1853條經驗 獲得超6個贊
文檔至少告訴我們,返回的是什么FirebaseApp.initializeApp(this);:
默認值FirebaseApp,如果之前已初始化,或者 Firebase API 密鑰存在于字符串資源中。null否則返回。
確保在build.gradle塊的底部應用 Google 服務插件android... 因為這是它們的API keys in string resources來源。
這是FirebaseAuth.getInstance()返回的唯一合乎邏輯的解釋null。
這個加了兩次:com.firebase:firebase-client-android:2.5.2。
版本不匹配可以通過排除來解決:
implementation ("com.firebaseui:firebase-ui-database:2.1.1") {
exclude group: "com.android.support", module: "recyclerview-v7"
}
以便它將使用com.android.support:recyclerview-v7:28.0.0。

天涯盡頭無女友
TA貢獻1831條經驗 獲得超9個贊
將此添加到您的清單中:
<service android:name="com.google.firebase.components.ComponentDiscoveryService"> <meta-data android:name="com.google.firebase.components:com.google.firebase.auth.FirebaseAuthRegistrar" android:value="com.google.firebase.components.ComponentRegistrar" />
如果存在相同的服務,請添加簡單的元數據標簽。
添加回答
舉報
0/150
提交
取消