android - FirebaseUI 离线授权

标签 android firebase firebase-realtime-database firebase-authentication

我正在学习我在 Firebase (Udacity) 中的第一门类(class),并且有看起来像这样实现 Firebase Auth 的代码

private FirebaseAuth mFirebaseAuth;
private FirebaseAuth.AuthStateListener mAuthStateListener;
....
    mAuthStateListener = new FirebaseAuth.AuthStateListener() {
        @Override
        public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
            FirebaseUser user = firebaseAuth.getCurrentUser();
            if (user != null) {
                // User is signed in
                onSignedInInitialize(user.getDisplayName());
            } else {
                // User is signed out
                onSignedOutCleanup();
                startActivityForResult(
                        AuthUI.getInstance()
                                .createSignInIntentBuilder()
                                .setIsSmartLockEnabled(false)
                                .setProviders(
                                        AuthUI.EMAIL_PROVIDER,
                                        AuthUI.GOOGLE_PROVIDER)
                                .build(),
                        RC_SIGN_IN);
            }
        }
    };

@Override
protected void onResume() {
    super.onResume();
    mFirebaseAuth.addAuthStateListener(mAuthStateListener);
}

当应用程序离线启动时,此代码会进入无限循环。

onResume -> onAuthStateChanged-> startActivityForResult-> onActivityResult(因 ErrorCodes.NO_NETWORK 而失败)-> onResume

有没有办法离线访问 FirebaseUI-Auth 登录屏幕,以便我可以使用 Android Smart Lock 登录。或者至少,像上面那样防止无限循环?

如果您需要更多详细信息,请告诉我

最佳答案

验证用户需要 Activity 连接。 Firebase 无法在不连接到其服务器的情况下对您的用户进行身份验证。

因此,一种处理方法是仅在用户设备为 connected to the network 时显示登录对话框。和/或 connected to Firebase .

关于android - FirebaseUI 离线授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42926833/

相关文章:

swift - Firebase 身份验证 : Password must contain capital letter

android - 游戏商店 : How to release early access app?

Android rsSetElementAt 4.2

Node.js 版本和 Google Cloud 功能

javascript - Firebase 可调用函数未接收参数

javascript - Firebase 部署 - 计算数据库中的项目并分配它

java - 如何实现 Android Collection 夹选项卡并将用户数据保存在文件/数据库中

java - 在 onCreateView 中膨胀类时出错...

typescript - 如何使用typescript在云功能中使用admin sdk从firebase读取数据

javascript - 如何从 web 上的 firebase 中提取所有 JSON