gpt4 book ai didi

android - 在 Android 应用中使用 Firebase (BaaS) 存储电子邮件和密码时如何包含用户名?

转载 作者:IT老高 更新时间:2023-10-28 22:26:17 25 4
gpt4 key购买 nike

Firebase createUser() 方法采用电子邮件和密码字段,但如果我还想允许用户使用类似于 Snapchat、Instagram、StackOverflow 等的自定义用户名怎么办?有什么方法可以修改现有方法以也接受该字段,或者我是否需要手动推送和管理此信息,如果需要如何?

这是我第一次尝试存储所需的用户信息:

Firebase ref = new Firebase(firebaseURL);
ref.createUser(email, password, new Firebase.ValueResultHandler<Map<String, Object>>() {
@Override
public void onSuccess(Map<String, Object> result) {
System.out.println("Successfully created user account with uid: " + result.get("uid"));

//Sign user in
Firebase ref = new Firebase(firebaseURL);
ref.authWithPassword(email, password, new Firebase.AuthResultHandler() {

@Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());

//Save user info
Firebase userRef = new Firebase(firebaseURL + "Users/");
User user = new User(username, authData.getUid());
userRef.setValue(user);

这是好的做法吗?我认为将 UID 与用户名一起存储可能有助于我将来处理更改等。此外,我应该实现 updateChildren() 还是 push() 方法,以便条目如果这是一个社交媒体应用程序,不要被覆盖?

这是我的第二次尝试:

  @Override
public void onAuthenticated(AuthData authData) {
System.out.println("User ID: " + authData.getUid() + ", Provider: " + authData.getProvider());

//Save user info and username
Firebase ref = new Firebase(firebaseURL);
Map<String, String> map = new HashMap<String, String>();
map.put("email", email);
map.put("username", username);
map.put("provider", authData.getProvider());

ref.child("users").child(authData.getUid()).setValue(map);

最佳答案

是的,有一种方法可以在 Firebase 中更新用户信息。您所需要的一切 - 阅读 Firebase 文档中的这篇文章并实现此处描述的方法 Update user info

使用此方法可以更新 FirabaseUser 对象的 diplayName 属性。只需为 displayName 属性设置用户名并提交您的更改。

希望对你有帮助。

关于android - 在 Android 应用中使用 Firebase (BaaS) 存储电子邮件和密码时如何包含用户名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32151178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com