我希望检查addChildEventListener
中的snapshot.getKey()是否存在于同一数据库中的不同路径中。
我在数据库中有两棵树,它们是否喜欢活动由一个true或false表示,活动ID作为关键字
{
"Activity": {
"Do": {
"-NTW-cLFvmgSqZ72EKuJ": {
"name": "kayaking "
},
"-NTW-u8LJKsGd-wpcmir": {
"name": "climbing "
}
},
"Users": {
"wkFbhmSH6lfPkkyy6OGke0be1ys2": {
"gender": "Male",
"preferences": {
"Do": {
"-NTW-cLFvmgSqZ72EKuJ": true}
}
}
}
}
我想调查用户,询问他们是否喜欢该活动,但我只想问他们是否以前没有回答过这个问题。
为此,我使用了以下事件侦听器,它为所有活动填充问题卡
DatabaseReference selectedActivityDatabase = FirebaseDatabase.getInstance().getReference().child("Activity").child("Do");
selectedActivityDatabase.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot activitySnapshot, @Nullable String previousChildName) {
if (activitySnapshot.exists()){
currentActivityId = activitySnapshot.getKey();
cards item = new cards(activitySnapshot.getKey(),activitySnapshot.child("name").getValue().toString());
rowItems.add(item);
String key = activitySnapshot.getKey();
activityTpeArrayAdapter.notifyDataSetChanged();
}
}
我想检查activitySnapshot.getKey()
是否在users.child(“Do”).child(“preferences”)中,但我不知道如何将activitySnapshot.getKey()
传递到在数据库的“Users”树中进行检查的侦听器中
我尝试了许多侦听器,并尝试设置一个全局变量来存储活动ID并检查它是否存在于单独的函数中,但无法理解侦听器的复杂性以及如何向它们传递变量
1条答案
按热度按时间46qrfjad1#
我不明白如何将
activitySnapshot.getKey()
传递到一个侦听器中,以检查数据库的“Users”树。你应该创建一个精确指向
Users/$uid/preferences/Do/$pushedId
的新引用,并附加一个监听器。在代码中,它应该看起来像这样: