从 firebase 查询中模型 class returning null(查询结果不 return null)
Model class returning null from firebase query (query result does not return null)
Firebase 查询 returns 此查询的值
Query query = databaseReference.child("users").orderByChild("display_name").equalTo(s.toString());
{nfxQ14lxSIZ0qgTGllZ297b0nTv2={display_name=Friends, token= token_value}}
商品被模特抓到class
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
UserInfo userInfo = snapshot.getValue(UserInfo.class);
userInfo.getDisplay_name()
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
然而,returns null
型号class
public class UserInfo {
@SerializedName("display_name")
private String display_name;
@SerializedName("token")
private String token;
public UserInfo() {}
public String getDisplay_name() {return display_name;}
public void setDisplay_name(String display_name) { this.display_name = display_name;}
public String getToken() {return token;}
public void setToken(String token) {this.token = token;}
}
数据库结构如下
我遵循这个问题的逻辑
然而,一旦查询结果被转换,我仍然得到一个空结果
我认为问题在于,当我请求密钥时,我得到的是用户,而不是 uid 或 display_name
下一级
这里的解决方法很简单
ValueEventListener 应该是 ChildEventListener
这样 snapshot.getKey() returns 子值,因此可以使用
访问下键
String text = (String) snapshot.getChild("some_lower_key").getValue();
String diffOption = snapshot.getValue(Model.class);
但主要是在使用 Firebase 查询时使用 ChildEventListener
Firebase 查询 returns 此查询的值
Query query = databaseReference.child("users").orderByChild("display_name").equalTo(s.toString());
{nfxQ14lxSIZ0qgTGllZ297b0nTv2={display_name=Friends, token= token_value}}
商品被模特抓到class
query.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
UserInfo userInfo = snapshot.getValue(UserInfo.class);
userInfo.getDisplay_name()
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
然而,returns null
型号class
public class UserInfo {
@SerializedName("display_name")
private String display_name;
@SerializedName("token")
private String token;
public UserInfo() {}
public String getDisplay_name() {return display_name;}
public void setDisplay_name(String display_name) { this.display_name = display_name;}
public String getToken() {return token;}
public void setToken(String token) {this.token = token;}
}
数据库结构如下
我遵循这个问题的逻辑
然而,一旦查询结果被转换,我仍然得到一个空结果
我认为问题在于,当我请求密钥时,我得到的是用户,而不是 uid 或 display_name
下一级这里的解决方法很简单
ValueEventListener 应该是 ChildEventListener
这样 snapshot.getKey() returns 子值,因此可以使用
访问下键String text = (String) snapshot.getChild("some_lower_key").getValue();
String diffOption = snapshot.getValue(Model.class);
但主要是在使用 Firebase 查询时使用 ChildEventListener