gpt4 book ai didi

java - 使用模型类 Android 从 Firebase 访问用户信息

转载 作者:行者123 更新时间:2023-12-01 20:03:02 25 4
gpt4 key购买 nike

所以我正在开发一个使用授权系统来登录用户的应用程序。每当用户注册时,它就会在我的数据库中正常更新:

User user = new User(username);
FirebaseDatabase.getInstance().getReference().child("users").child(userid).child("profile").setValue(user);

问题是,当我尝试在下一个 Activity 中再次访问数据以尝试获取当前用户的用户名时,我收到此错误消息:

com.google.firebase.database.DatabaseException: Can't convert object of type java.lang.String to type friendimals.Model.User

我正在使用基本模型类:

public class User {

private String username;

public User() {

}

public User(String username) {
this.username= username;

}


public String getUsername(){
return this.username;
}
}

这就是我访问数据库中信息的方式:

mDatabase.child("users").child(mUserId).child("profile").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
//This is the line that is causing the crash
User user = dataSnapshot.getValue(User.class);
username_TextView.setText(user.getUsername());
}

@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {

}

@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {

}

@Override
public void onCancelled(DatabaseError databaseError) {

}
});

关于此错误的含义和/或如何修复它有什么想法吗?非常感谢任何帮助。

最佳答案

问题是您没有在模型类中指定的任何名为 username 的键。 dataSnapshot 仅返回字符串值。

如果您的数据结构是这样的,那么只有与模型类一起使用

userid
|
username:usernameValue

关于java - 使用模型类 Android 从 Firebase 访问用户信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47810868/

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