Firebase:在不知道父级的情况下查询内部子级
Posted
技术标签:
【中文标题】Firebase:在不知道父级的情况下查询内部子级【英文标题】:Firebase: Query inner child without knowing the parent 【发布时间】:2019-05-05 14:47:11 【问题描述】:所以我想知道是否有一种方法可以基于内部子级进行查询,而无需知道 Firebase 数据库中的父级?这是确切的情况: 如图所示,我想查询 title = "bj" 的整个数据快照,因为我已经自动推送它们,所以我不知道密钥(或本例中的父项)。我很好奇 Fb Query 是否必须直接查看嵌套的子项? TIA
private void fetchPinnedLocationsForSearchbar(String key)
Query query = MyApplication.database.getReference("/pins/").child("title").orderByKey().equalTo(key);
query.addListenerForSingleValueEvent(new ValueEventListener()
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot)
Log.e("-->X-DATA-FROM-QUERY", dataSnapshot.toString());
for (DataSnapshot dataSnapshot1 : dataSnapshot.getChildren())
final BusinessModel pinItModel = new BusinessModel();
if (((Boolean) dataSnapshot1.child("ifBusiness").getValue()))
if
BusinessModel pinItModelTest = dataSnapshot1.getValue(BusinessModel.class);
Log.e("->PicCount", pinItModelTest.getPicCount() + "");
//
_data.add(pinItModelTest);
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
【问题讨论】:
【参考方案1】:所以我从 *** 上的另一篇帖子中找到了答案,该帖子建议解决方案应该是这样的:
FirebaseDatabase.getInstance().getReference("pins").orderByChild("title").equalTo("bj").addChildEventListener(new ChildEventListener()
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
Log.e("-->X--ChildAddedQUERY", dataSnapshot.toString()+"---"+s);
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot)
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s)
@Override
public void onCancelled(@NonNull DatabaseError databaseError)
);
【讨论】:
以上是关于Firebase:在不知道父级的情况下查询内部子级的主要内容,如果未能解决你的问题,请参考以下文章
css父级没包住子级是怎么回事,我用firebug查看,确实在父级的div中,但是就是没有包括子级的内容