所以这是我的绑定模型类:
public class UserBanknoteAmountBindModel {
public String id;
public String userId;
public String banknoteType;
public String banknoteAmount;
public UserBanknoteAmountBindModel(){
}
public String getBanknoteAmount() {
return banknoteAmount;
}
public String getBanknoteType() {
return banknoteType;
}
public String getUserId() {
return userId;
}
public void setBanknoteAmount(String banknoteAmount) {
this.banknoteAmount = banknoteAmount;
}
public void setBanknoteType(String banknoteType) {
this.banknoteType = banknoteType;
}
public void setUserId(String userId) {
this.userId = userId;
}
}
(如果在这种情况下访问修饰符很重要,则为idk)。 我正在尝试解析我的数据:
for (DataSnapshot banknoteAmount:dataSnapshot.getChildren()){
UserBanknoteAmountBindModel userBanknoteAmountBindModel=dataSnapshot.getValue(UserBanknoteAmountBindModel.class);
Log.wtf("hgfh", banknoteAmount.getValue().toString());
}
我看到我正在接收我的数据,因为我可以记录它。
{banknoteAmount = 3,banknoteType = 20_dollar, 用户id = 112371098270685247195}
无论如何,我的数据并没有进入我的绑定模型。我读到某个地方,我不仅需要提供吸气剂,还需要提供吸尘器(这就是为什么我把这些定位器放到PS上:这对于设置者来说是真的吗?)。 有什么想法吗?
编辑:数据库结构https://i.stack.imgur.com/o5Hgp.png PS:问题是我使用了来自另一个函数的参数来获取getValue(不是foorloop变量)
答案 0 :(得分:0)
要获取banknoteAmount
,banknoteType
和userId
的值,请使用以下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userBanknoteAmountRef = rootRef.child("userBanknoteAmount");
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
UserBanknoteAmountBindModel userBanknoteAmountBindModel = ds.getValue(UserBanknoteAmountBindModel.class);
String banknoteAmount = userBanknoteAmountBindModel.getBanknoteAmount();
String banknoteType = userBanknoteAmountBindModel.getBanknoteType();
String userId = userBanknoteAmountBindModel.getUserId();
Log.d("TAG", banknoteAmount + " / " + banknoteType + " / " + userId);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
userBanknoteAmountRef.addListenerForSingleValueEvent(valueEventListener);
输出将是:
3 / 20_dollar / 112371098270685247195
当您使用以下代码行时:
banknoteAmount.getValue().toString()
您实际上正在打印banknoteAmount.getValue()
的字符串表示形式,其中包含一个包含这三个值的Map
对象作为返回值。