Java 生孩子';的名称以及Firebase数据库中的值

Java 生孩子';的名称以及Firebase数据库中的值,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,在我的Firebase数据库中,我有如下数据: paidRecord[ John Smith: UNPAID Bill Smith: PAID Mary Smith: UNPAID ] 我正在尝试在我的应用程序中创建一个字符串,显示所有人的付费状态。目前,我所拥有的只是一个显示“未付”的字符串,但我需要的是同时显示用户名 以下是函数: private void checkPaidStatus(){ paidString = ""; Firebase

在我的Firebase数据库中,我有如下数据:

paidRecord[
    John Smith: UNPAID
    Bill Smith: PAID
    Mary Smith: UNPAID
]
我正在尝试在我的应用程序中创建一个字符串,显示所有人的付费状态。目前,我所拥有的只是一个显示“未付”的字符串,但我需要的是同时显示用户名

以下是函数:

private void checkPaidStatus(){

    paidString = "";


    FirebaseDatabase.getInstance().getReference("Flats").child(flatID).child("Bills").child(itemSelected).child("paidRecord").addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {

            if(dataSnapshot != null){
                Iterator<DataSnapshot> iterable = dataSnapshot.getChildren().iterator();

                //this is the bit that needs to be changed to return properly xd good luck
                for (Iterator<DataSnapshot> it = iterable; it.hasNext();){

                    DataSnapshot dataSnapshot1 = it.next();
                    paidString = paidString + "new" + dataSnapshot1.getValue(String.class);
                    textViewPaidStatus.setText(paidString);

                }

            }

        }

        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });


}
private void checkPaidStatus(){
paidString=“”;
FirebaseDatabase.getInstance().getReference(“Flats”).child(flatID).child(“Bills”).child(itemSelected).child(“paidRecord”).addListenerForSingleValueEvent(新值EventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
if(dataSnapshot!=null){
迭代器iterable=dataSnapshot.getChildren().Iterator();
//这是需要更改的位,以正确返回xd好运
for(迭代器it=iterable;it.hasNext();){
DataSnapshot dataSnapshot1=it.next();
paidString=paidString+“new”+dataSnapshot1.getValue(String.class);
textViewPaidStatus.setText(paidString);
}
}
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){
}
});
}

那么,Firebase数据库上是否有方法不仅返回分配给键的值,还返回键本身呢?

实际上,您的键也可以在子DataSnapshot中使用,只是您需要像下面这样

DataSnapshot dataSnapshot1 = it.next();
paidString = paidString + "new" + dataSnapshot1.getValue(String.class);
textViewPaidStatus.setText(paidString);
String mStrkey=dataSnapshot1.getKey()

你能显示你当前的代码吗?“寻求调试帮助的问题(“此代码为什么不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现这些问题所需的最短代码。没有明确问题说明的问题对其他读者没有用。请参阅:“该键可从
DataSnapshot.getKey()获得。”
传递到您的回调中。正如frank所说,请使用您试图获取值的代码更新您的问题,我们将为您提供帮助