首页 > 解决方案 > 用于实现 Firebase 授权的 Java 帮助

问题描述

我相信我已经成功设置了 Firebase,但是我在 Android Studio (AS) 中遇到了 Java 端的问题。我一直在关注 YouTube 教程,因为我对 AS 和 Firebase 还很陌生,我想要三个登录选项:Facebook、Google 和电子邮件。AS 无法解析“FirebaseAuth”、“getCurrentUser”或“AuthUI”的符号。任何帮助是极大的赞赏!

这是我的 Java MainActivity:

package com.uni.smartprogression;

import android.content.Intent;
import android.os.Bundle;
import android.util.Log;

import androidx.appcompat.app.AppCompatActivity;

import com.firebase.ui.auth.AuthUI;

public class MainActivity extends AppCompatActivity {
private static final int RC_SIGN_IN = 0;
private FireBaseAuth auth;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    auth = FirebaseAuth.getInstance();
    //User already signed in
    if (auth.getCurrentUser() != null) {
        //User already logged in
        Log.d("AUTH", auth.getCurrentUser().getEmail());
    }
    else {
        startActivityForResult(AuthUI.getInstance()
                        .createSignInIntentBuiler()
                        .setProviders(
                                AuthUI.FACEBOOK_PROVIDER,
                                AuthUI.EMAIL_PROVIDER,
                                AuthUI.GOOGLE_PROVIDER )
                        .build(),
                RC_SIGN_IN);
    }
}

@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_SIGN_IN){
        if (resultCode == RESULT_OK){
            //User logged in
            Log.d("AUTH", auth.getCurrentUser().getEmail());
        }
        else {
            //User not authenticated
            Log.d("AUTH", "NOT AUTHENTICATED");
        }
    }
}
}

这是我的应用程序构建 gradle:

plugins {
id 'com.android.application'
}

android {
compileSdkVersion 30
buildToolsVersion "30.0.2"

defaultConfig {
    applicationId "com.uni.smartprogression"
    minSdkVersion 21
    targetSdkVersion 30
    versionCode 1
    versionName "1.0"

    testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}

buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}
compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
}
}

dependencies {

implementation 'androidx.appcompat:appcompat:1.1.0'
implementation 'com.google.android.material:material:1.1.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation platform('com.google.firebase:firebase-bom:26.2.0')
implementation ('com.google.firebase:firebase-auth:26.2.0')
implementation 'com.google.firebase:firebase-database:26.2.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'
 // implementation platform'com.google.firebase:firebase-storage:26.2.0'
}

apply plugin: 'com.google.gms.google-services'

标签: javaandroidfirebaseandroid-studiofirebase-authentication

解决方案


推荐阅读