首页 文章

Firebase登录错误:使用Google登录时出错

提问于
浏览
1

我有一个登录屏幕,您可以通过Google登录,但当我点击登录然后选择该帐户时,它会保持相同的活动 . 日志中的错误如下:

W/InputMethodManager: startInputReason = 1
E/GoogleProvider: Error logging in with Google. 16 null
EGLNativeWindowType 0x704a430010 disconnect failed
Activity resumed, time: 182884358

活动的代码如下:

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;

import com.firebase.ui.auth.AuthUI;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;

import java.util.Arrays;

public class LoginActivity extends AppCompatActivity {

    private static final int RC_SIGN_IN = 123;
    private FirebaseAuth mAuth;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        startActivityForResult(AuthUI.getInstance().createSignInIntentBuilder()
                        .setAvailableProviders(
                                Arrays.asList(  new AuthUI.IdpConfig.GoogleBuilder().build(),
                                        new AuthUI.IdpConfig.FacebookBuilder().build()))
                        .setIsSmartLockEnabled(false)
                        .setTheme(R.style.AppTheme)
                        .build(),
                RC_SIGN_IN);

        mAuth = FirebaseAuth.getInstance();
        mAuth.addAuthStateListener(firebaseAuth -> {
            if(firebaseAuth.getCurrentUser()!= null) {
                startHomeActivity();
            }
        });
    }

    @Override
    public void onStart() {
        super.onStart();
        FirebaseUser currentUser = mAuth.getCurrentUser();
        if(currentUser != null) {
            startHomeActivity();
        }
    }

    private void startHomeActivity() {
        Intent intent = new Intent(getApplicationContext(), Home.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
        startActivity(intent);
    }
}

我已经使用SHA1签署了Firebase并激活了服务中的登录选项 .

2 回答

  • 0

    尝试在Firebase Console的项目设置中为您的包名添加SHA1 .

  • 0

    要解决的步骤是:

    1 - keytool -list -v -keystore~ / .android / debug.keystore

    2 - 复制SHA1(它必须是SHA1,因为这是他们用于Oauth的东西)

    3 - 登录firebase控制台 - >项目设置 - >常规 - > android app

    4 - 向下滚动并将SHA1指纹添加到指纹列表中

    5 - 下载新的google-services.json并替换你的android studio项目 .

    6 - 从手机中删除应用并重新部署

相关问题