android - FirebaseAuth - 让用户使用任何提供商更改密码 - Android

标签 android firebase firebase-authentication

我有一个社交媒体应用,我使用 FirebaseUI 让用户使用电子邮件、Google 或 Facebook 登录/注册该应用。

  1. 如果使用“电子邮件”作为密码,如何让用户稍后更改其密码 提供商?

  2. 如果使用 Facebook 或 Google 作为提供商,我可以通过为他/她提供更改密码的选项来将电子邮件密码设置为身份验证方法吗?

  3. 用户的更改密码操作应将电子邮件密码设置为 Firebase 中的身份验证方法,并使用用户输入的新密码。

  4. 然后,用户应该能够使用电子邮件密码或与同一电子邮件链接的身份验证提供商(Facebook/Google)登录。

最佳答案

回答您的问题:

以下是用于更改/更新用户密码的示例代码 fragment :

FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String newPassword = "SOME-SECURE-PASSWORD";

user.updatePassword(newPassword)
    .addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Log.d(TAG, "User password updated.");
            }
        }
    });

有关使用 Firebase 用户的详细信息已发布 here .

2. A。 更改应用中的密码:

Facebook、Google 和 Twitter 等登录提供商不会开放此功能 (API),以防止中间人和其他攻击/滥用。

b.用户登录后在服务提供商中更改了密码

用户仍然可以登录您的应用,身份验证过程直接交给服务提供商,因此您不必担心!

c.使用同一电子邮件地址进行多次身份验证。

引用

let's say user A logged in using Facebook to my app, then he went to his profile in MY APP , and changed his password, next time to login I want him to have 2 options: 1- Login using Facebook normally 2- Login using his facebook Email + the password that he saved earlier

答案是,但你必须先合并详细信息,这里是reference 。实际上,您可以通过识别相同的 Firebase 用户 ID 来链接/合并同一电子邮件地址的用户详细信息,而不管他们用于登录的身份验证提供商如何。

例如,使用密码登录的用户可以关联 Google 帐户,并在以后使用任一方法登录。或者,匿名用户可以关联 Facebook 帐户,然后使用 Facebook 登录以继续使用您的应用。

希望对您有帮助!

关于android - FirebaseAuth - 让用户使用任何提供商更改密码 - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51725688/

相关文章:

ios - Swift - 从 facebook 登录中获取错误

javascript - 如何安全地记录用户统计信息

android - 提高 Android SDK 模拟器速度

android - Firebase 使用 Hashmap 在同一个 child 上推送数据

android - 同一个Activity中的Fragment切换重启同一个Fragment

java - 未使用 firebase 数据库访问调用 onChange 方法

c - 如何在ContinueWith Firebase auth UNITY3D中更改游戏对象

android - Android Studio 和 Eclipse 开发调试的区别

Firebase 写入父节点但阻止直接写入子节点

javascript - 如何在服务器端查看用户认证状态