gpt4 book ai didi

java - 如何从 dataSnapshot 中获取值?

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:41 25 4
gpt4 key购买 nike

当我调试这段代码时,在databaseUser dataSnapshot 中有数据库中User 的值,但是在对象user1 中,没有添加,它都是空的。而且我不明白,因为在对象事件中正常接收值。

databaseEvent.child(getKeyEvent()).addListenerForSingleValueEvent( 
new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {

final Event event = dataSnapshot.getValue(Event.class);
user = FirebaseAuth.getInstance().getCurrentUser();
if(user != null) {

databaseUser.orderByChild("userEmail").equalTo(user.getEmail()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.exists()) {
//User already exists
User user1 = dataSnapshot.getValue(User.class);
}
}
});

我的数据库用户,暂时只做测试:

public class User {

String userId;
String userEmail;
Boolean userHasInterest;
String eventId;

public String getUserId() {
return userId;
}
public String getUserEmail() {
return userEmail;
}

public Boolean getUserHasInterest() {
return userHasInterest;
}

public String getEventId() {
return eventId;
}

public User(String userId, String eventId, String userEmail, Boolean userHasInterest) {
this.userId = userId;
this.userEmail = userEmail;
this.userHasInterest = userHasInterest;
this.eventId = eventId;
}

和方法,只是选择另一个 Activity 的事件的键:

public String getKeyEvent(){
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String key = bundle.getString("Evento");
return key;
}

最佳答案

当您对 Firebase 数据库执行查询时,可能会有多个结果。通过附加 ValueListener,您可以在一个快照中获得这些结果,因此快照包含这些结果的列表。即使只有一个结果,快照也会包含一个结果的列表。

您的代码没有考虑到这个“结果列表”。通过遍历 DataSnapshot.getChildren() 很容易修复:

databaseUser.orderByChild("userEmail").equalTo(user.getEmail()).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
User user1 = userSnapshot.getValue(User.class);

关于java - 如何从 dataSnapshot 中获取值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45390968/

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