我试图获取存储在当前用户ID下的不同用户ID。我不确定如何获取具有随机用户ID的实际密钥。请参阅Firebase结构。
那么我如何获得实际的密钥,即随机的用户ID呢?
请参阅目前为止的程式码:
public void getAgencyAdminID(final String nodeName){
database.child("sand")
.child(nodeName)
.child("agencyAdmin")
.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
System.out.println(dataSnapshot.toString());
}
@Override
public void onCancelled(DatabaseError databaseError) { }
});
}
我很感激任何帮助,谢谢!
2条答案
按热度按时间dgtucam11#
假设
sand
节点是Firebase数据库的直接子节点,并且nodeName
指向ert
,userID
是rC6eW88yy3hhswdBrCT9cmd6rJB2
,要获取该键,请使用以下代码:您需要循环的原因:当你对Firebase数据库执行一个查询时,可能会有多个结果。2所以快照包含了这些结果的列表。3即使只有一个结果,快照也会包含一个结果的列表。
mrwjdhj32#
看起来你知道这个值的位置,所以你的当前代码差不多就在那里了。你只需要遍历返回的
DataSnapshot
的子节点,然后使用DataSnapshot#getKey()
获取每个子节点的键:这里需要在
DataSnapshot#getChildren()
上使用for
迭代循环,因为返回的DataSnapshot
包含agencyAdmin
节点上的所有子节点。