我想在特定密钥下检索消息数据.但我不知道如何获得钥匙.请帮忙,我是firebase的新手.
就我而言,我想把钥匙包围在下面.
我在下面尝试过这段代码,但这会返回"聊天伙伴"而不是密钥.
final DatabaseReference ref =FirebaseDatabase.getInstance().getReference().child("chat").child("single-chat").child("converstation").child("chat-mates"); ref.orderByChild("receiverName").equalTo("Liza Soberano").addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(DataSnapshot dataSnapshot) { for (DataSnapshot child: dataSnapshot.getChildren()){ String key = child.getKey(); Log.e("Key", key); } } @Override public void onCancelled(DatabaseError databaseError) { } });
我在下面尝试过这段代码,但这会返回"聊天伙伴"而不是密钥.
您必须使用DataSnapshot
方法来访问JSON树.该DataSnapshot
元素有一个名为的方法getKey()
.返回对象的键.
官方Doc:DataSnapShot getKey()方法
示例代码:
DatabaseReference ref = FirebaseDatabase.getInstance().getReference(); ref.addValueEventListener(new ValueEventListener() { @Override public void onDataChange(DataSnapshot snapshot) { for (DataSnapshot objSnapshot: snapshot.getChildren()) { Object obj = objSnapshot.getKey(); } } @Override public void onCancelled(DatabaseError firebaseError) { Log.e("Read failed", firebaseError.getMessage()); } });
在您的情况下,首先进入子节点"对话",然后应用上述方法getKey()
.