【问题标题】:User validation before phone authentication电话认证前的用户验证
【发布时间】:2018-03-16 10:24:04
【问题描述】:

我想在电话身份验证之前验证 Firebase 中是否存在用户电话号码。如果用户存在,则只会启动 OTP 验证,否则会显示错误。请帮帮我

【问题讨论】:

    标签: android firebase firebase-authentication real-time


    【解决方案1】:

    您可以使用 Admin SDK 通过phoneNumber 查找用户: admin.auth().getUserByPhoneNumber(phoneNumber)

    这将帮助您检查是否已存在使用此电话号码的用户记录。

    访问documentation了解更多信息。

    您可以创建一个 HTTP 端点来执行此操作。

    【讨论】:

    • 我已经创建了一个firebase实时数据库,现在我想做一个日历活动并调用我在日历中输入数据库的数据......请帮帮我
    【解决方案2】:

    所以你想通过从管理面板进入来限制用户群。? 如果是这样,那么如果输入否,则使用匿名身份验证来读取数据库。存在于数据库中,然后仅继续电话身份验证并将这些匿名和电话帐户关联。

    【讨论】:

    • 我希望首先在 Firebase 中识别用户电话号码,然后电话身份验证活动将开始
    【解决方案3】:
        public class PhoneNumberAuthentication extends AppCompatActivity {
    
    private static final int RC_SIGN_IN = 123;
    @Override
    protected void onCreate( Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        FirebaseApp.initializeApp(this);
        FirebaseAuth auth = FirebaseAuth.getInstance();
        if (auth.getCurrentUser() != null) {
            // already signed in
            startActivity(new Intent(PhoneNumberAuthentication.this, MainActivity.class));
            finish();
        } else {
            // not signed in
            startActivityForResult(
                    AuthUI.getInstance()
                            .createSignInIntentBuilder()
                            .setAvailableProviders(
                                    Arrays.asList(
                                              new AuthUI.IdpConfig.PhoneBuilder().build())).build(),
                    RC_SIGN_IN);
        }
    }
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        // RC_SIGN_IN is the request code you passed into startActivityForResult(...) when starting the sign in flow.
        if (requestCode == RC_SIGN_IN) {
            IdpResponse response = IdpResponse.fromResultIntent(data);
    
            // Successfully signed in
            if (resultCode == RESULT_OK) {
                startActivity(new Intent(PhoneNumberAuthentication.this, MainActivity.class));
                finish();
            } else {
                // Sign in failed
                if (response == null) {
                    // User pressed back button
                    //showSnackbar(R.string.sign_in_cancelled);
                    return;
                }
    
                if (response.getError().getErrorCode() == ErrorCodes.NO_NETWORK) {
                    // showSnackbar(R.string.no_internet_connection);
                    return;
                }
    
                // showSnackbar(R.string.unknown_error);
                // Log.e(TAG, "Sign-in error: ", response.getError());
            }
        }
    }}
    

    同时添加 build.gradle

      implementation 'com.firebaseui:firebase-ui-auth:3.2.2'
    

    【讨论】:

    • 我猜这只是通过 FirebaseUI 实现的 UserPhoneAuthentication 没有用于检查用户是否存在于数据库中的逻辑,或者只是删除这个答案
    • 我想在检查 Firebase 中存在用户联系人后授予对下一个活动的访问权限。请帮帮我....
    • 我在 fire store 中创建了一个应用程序,我想检查 firestore 中是否存在用户编号。我希望我可以在 firestore 实时数据库中应用的规则这样做。请帮帮我请遵守规则........
    猜你喜欢
    • 1970-01-01
    • 2020-03-07
    • 2020-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    相关资源
    最近更新 更多