使 Google 登录对话框不可取消

Jar*_*red 6 android firebase firebase-authentication google-signin

我正在将 Firebase 用于我的 Android 应用程序并实现了 Google 帐户登录。我的问题是当它显示“选择 Google 帐户”对话框时,如果您点击它,它就会关闭。有没有办法使这个对话框不可取消?

Rya*_*yan 6

首先,我想确保您注意这种行为存在的原因。如果没有取消按钮,那么用户如何改变主意?您通常希望避免强迫用户做他们后来不想做的事情。

话虽如此,这是我的答案:

我不能 100% 肯定地说不,但是在查看 API 参考之后,我没有看到有一种方法可以更改该登录对话框的默认行为。

请参阅 API 参考:https : //developers.google.com/android/reference/com/google/android/gms/auth/api/signin/GoogleSignInApi

我会建议处理它的最好方法是在onActivityResult你的代码片段中处理它。只需通过调用getStatusCode()返回的数据来获取登录状态,然后查看是否获得SIGN_IN_CANCELLED常量。这表明用户取消了我认为如果他们离开屏幕就会发生这种情况。无论如何,如果这不是返回的代码,只需在控制台中打印它,然后查看单击关闭并取消对话框时返回的代码。

然后,如果他们确实取消了,您可以重新启动屏幕或询问他们发生了什么。我会推荐后者,以避免强迫他们进入获得他们想要的唯一方法是强制关闭您的应用程序的情况。

编辑:

这是文档中有关检查该状态代码的示例。这样做可能比通过拉动状态对象并以这种方式获取代码更好:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    // Result returned from launching the Intent from GoogleSignInApi.getSignInIntent(...);
    if (requestCode == RC_SIGN_IN) {
        GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
        handleSignInResult(result);
    }
}
Run Code Online (Sandbox Code Playgroud)