Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android firebase登录WithEmailLink删除firebase帐户中的电话号码_Android_Firebase_Firebase Authentication_Firebase Dynamic Links - Fatal编程技术网

Android firebase登录WithEmailLink删除firebase帐户中的电话号码

Android firebase登录WithEmailLink删除firebase帐户中的电话号码,android,firebase,firebase-authentication,firebase-dynamic-links,Android,Firebase,Firebase Authentication,Firebase Dynamic Links,我对firebase无密码身份验证有问题。我的应用允许用户使用电话号码或电子邮件链接登录 当用户尝试通过signInWithEmailLink登录时,firebase中的用户帐户会丢失其电话号码,但他已成功登录 以下是通过动态链接将用户从邮件重定向到应用程序时执行的代码: FirebaseDynamicLinks.getInstance() .getDynamicLink(activity.getIntent()) .addOnSu

我对firebase无密码身份验证有问题。我的应用允许用户使用电话号码或电子邮件链接登录

当用户尝试通过
signInWithEmailLink
登录时,firebase中的用户帐户会丢失其电话号码,但他已成功登录

以下是通过动态链接将用户从邮件重定向到应用程序时执行的代码:

FirebaseDynamicLinks.getInstance()
                .getDynamicLink(activity.getIntent())
                .addOnSuccessListener(activity, pendingDynamicLinkData -> {
                    
                    Uri deepLink = null;
                    if (pendingDynamicLinkData != null) {
                        
                        deepLink = pendingDynamicLinkData.getLink();
                        String emailLink = deepLink.toString();
                        String authEmail = activity.getPreferences(Context.MODE_PRIVATE).getString("link_auth_email",null);
                        if(authEmail != null){
                            Helper.showProgressDialog(activity);
                            firebaseAuth.signInWithEmailLink(authEmail,emailLink).addOnCompleteListener(activity,task ->{
                                if(task.isSuccessful()){
                                    firebaseUser = task.getResult().getUser();
                                    name = firebaseUser.getDisplayName();
                                    phone = firebaseUser.getPhoneNumber();
                                    email = firebaseUser.getEmail();
                                    image = firebaseUser.getPhotoUrl();
                                    firebaseUser.getIdToken(true).addOnCompleteListener(activity, task1 -> {
                                        Helper.hideProgressDialog();
                                        if(task1.isSuccessful()){
                                            token = task1.getResult().getToken();
                                        }else if(task1.getException() !=null){
                                            Toast.makeText(activity, task1.getException().getMessage(), Toast.LENGTH_SHORT).show();
                                        }
                                    });
                                }else{
                                    Helper.hideProgressDialog();
                                    Toast.makeText(activity, "Authentication failed. "+(task.getException().getMessage()==null?"":task.getException().getMessage()), Toast.LENGTH_SHORT).show();
                                }
                            });
                        }
                    }
                    else{
                        
                        firebaseUser = firebaseAuth.getCurrentUser();
                        if(firebaseUser != null){
                            name = firebaseUser.getDisplayName();
                            phone = firebaseUser.getPhoneNumber();
                            email = firebaseUser.getEmail();
                            image = firebaseUser.getPhotoUrl();
                            firebaseUser.getIdToken(true).addOnCompleteListener(activity, task -> {
                                if(task.isSuccessful()){
                                    token = task.getResult().getToken();
                                }else if(task.getException() !=null){
                                    Toast.makeText(activity, task.getException().getMessage(), Toast.LENGTH_SHORT).show();
                                }
                            });
                        }
                    }
                })
                .addOnFailureListener(activity, e -> Toast.makeText(activity, "Link failure: "+e.getMessage(), Toast.LENGTH_SHORT).show());

Firebase依赖项:

    implementation 'com.google.firebase:firebase-auth:19.3.2'
    implementation 'com.google.firebase:firebase-dynamic-links:19.0.0'
    implementation 'com.google.firebase:firebase-analytics:17.4.4'

这是因为我在电话身份验证过程后通过
updateEmail
方法向注册用户添加电子邮件,而不是使用
linkwithcredential

这是因为我在电话身份验证过程后通过
updateEmail
方法向注册用户添加电子邮件,而不是使用
linkwithcredential