我刚刚开始使用 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
提交
取消
