Firebase - 从密钥包含VAR的子项中检索所有数据

时间:2017-03-03 15:05:29

标签: java android firebase firebase-realtime-database nosql

使用Android和FireBase,并根据我们想要实现的问题解决问题

我们有一个文件,其中密钥是两个名字,如Bob_Jimmy

每个名称都是唯一的,但可以显示在不同的设置中,例如: Bob_Jimmy Jimmy_Bob Bob_Carl

由于这是关键,你应该如何/你将如何从'Bob'作为密钥一部分的所有密钥中获取数据?因为我们只知道鲍勃

2 个答案:

答案 0 :(得分:0)

创建Firebase数据库引用并在onDataChange()方法中检查密钥是否包含您的变量。例如:

DatabaseReference ref = FirebaseDatabase.getInstance().getReference();
ref.addListenerForSingleValueEvent(new ValueEventListener(){

  @Override
  public void onDataChange(DataSnapshot dataSnapshot){
     if(dataSnapshot.getKey().contains("bob")){
             {your code}
       }
  }

 });

如果我有您的数据库结构,我可以编写准确的代码。这只是一个样本。 如果要监听新的子级添加事件,可以使用addChildEventListener()。希望它有所帮助。

答案 1 :(得分:0)

您可以使用实时数据库查询类来检索按键,值或子值的值排序的数据。您还可以将排序结果过滤为特定数量的结果或一系列键或值

  

注意:过滤和排序可能很昂贵,尤其是在完成后   客户端。如果您的应用使用查询,请将。indexOn规则定义为   索引服务器上的那些键并提高查询性能   索引数据中描述的。

您可以sort data使用以下方法

  

方法用法

orderByChild()按指定子键的值对结果进行排序。

orderByKey()按子键订购结果。

orderByValue()按子值订购结果

startAt()根据所选的订购方式,返回大于或等于指定键或值的项目。

endAt()根据所选择的订购方式,返回小于或等于指定键或值的项目。

equalTo()根据所选择的订购方式,返回等于指定键或值的项目。