【发布时间】:2017-09-05 07:33:15
【问题描述】:
这里成员在组中的密钥是用户的密钥。
任务:想根据 Group 的 member key 从enter code herem User 获取 comida_id。
在这里,我们首先尝试从 Group 中获取成员密钥。在获取成员密钥时,我们还希望在该成员的循环进行时获取用户和用户的 comida_id。所以场景将是首先我们将根据 Group 的密钥(例如 createTime、groupName、members)从 Group 中获取所有密钥。现在,我们将对成员执行循环,以便获取成员的密钥。现在,在该循环中获取该成员的密钥时,我们想从用户中获取 comida_id,它将仅在该循环中获取。
GroupKey -> 获取数据(createTime, groupName, members, Restaurants) -> 获取成员密钥和 comida_id(在循环中(获取成员密钥然后获取 comida_id))
*我的代码
FirebaseDatabase mDatabase_gp = FirebaseDatabase.getInstance();
mDatabase_gp.getReference("Group/"+group_key).addValueEventListener(
new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
Map<String, Object> valuesMap = (HashMap<String, Object>) dataSnapshot.getValue();
Map userkey = (Map) valuesMap.get("members");
Log.d("Members", String.valueOf(userkey));
for (Object ke: userkey.keySet())
{
Log.d("runfirst","First Run");
String key = String.valueOf(ke.toString());
Log.d("Member key",key);
// HERE WHAT CORRESPONDS TO JOIN
FirebaseDatabase User = FirebaseDatabase.getInstance();
User.getReference("User/"+key).addValueEventListener(
new ValueEventListener()
{
@Override
public void onDataChange(DataSnapshot dataSnapshot)
{
Map<String, Object> valuesMap = (HashMap<String, Object>) dataSnapshot.getValue();
String userid = String.valueOf(valuesMap.get("comida_id"));
Log.d("comida_id",userid);
Toast.makeText(ChatSectionActivity.this,userid,Toast.LENGTH_SHORT).show();
}
@Override
public void onCancelled(DatabaseError databaseError)
{
}
}
);
}
Log.d("runlast","Last Run");
}
@Override
public void onCancelled(DatabaseError databaseError)
{
}
}
);
*
在上面的代码中,我们尝试实现相同的目标,但这里代码将首先从组中获取所有成员键。获取所有成员后,它将在另一个循环中获取 comida_ids。因此,将有两个不同的循环从成员中获取 comida_id。它不像连接查询那样工作。
GroupKey -> get Data(createTime, groupName, members, Restaurants) -> fetch members key (in Loop (get member key) after then fetch comida_id .
*1) 我正在尝试这个解决方案 - How to perform join query in Firebase?
**但是得到这个错误-
Incompatible types.
Required: com.google.firebase.database.DatabaseReference
Found: com.google.firebase.database.ValueEventListener
【问题讨论】:
-
添加您的数据库结构 JSON.?
-
感谢回复 去这个链接可以看到数据库图片i.stack.imgur.com/ljlWo.png
标签: android firebase firebase-realtime-database