【问题标题】:Firebase Console Database Rules : how to index the following database structure in Database RulesFirebase 控制台数据库规则:如何在数据库规则中索引以下数据库结构
【发布时间】:2017-12-14 01:07:13
【问题描述】:

该示例是在一个国家/地区列出的停车位。 使用 userParkingDistanceMap 构建数据库的原因是按当前用户与所有停车位之间的距离进行排序。

数据库查询是.orderByChild("userParkingDistanceMap/" + getUid())

那么,我如何在数据库规则中索引这个userParkingDistanceMap

"parkingSpacesTokyo" : {
    "parkingId5" : {
      "parkingName" : "MY-PARKING-NAME",
      "parkingQuantity" : 70,
      "userParkingDistanceMap" : {
        "uid-uid-uid-uid-uid-uid-uid" : 7983,
        "9EAiImOh4ZUnqJ7em51u81FukD73" : 9456,
        "AG84p8KJgANuobRJ5pn1ipxULFB3" : 8336,
        "yYLVffMFsBQhsGHNWuPOksMDgip2" : 7983,
        "yp6mZm2SPVhz5pOq57tSEZ40piJ2" : 7983
      }
    },
   "parkingId6": {
        ...
    }
},
"parkingSpacesYOKOHAMA" : {

}

【问题讨论】:

  • 好像太复杂了。

标签: android firebase firebase-realtime-database firebase-security firebase-console


【解决方案1】:

所以基本上你可能已经通过类似的方式初始化了引用

final FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference ref = database.getReference("parking");


ref.addListenerForSingleValueEvent(valueEventListner);

valueEventListner 在哪里:

ValueEventListner valueEventListner = new ValueEventListener() 
    {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) 
         {
         for(DataSnapshot childDataSnapshot: dataSnapshot)
             {
             DatabaseReference parkindId = ref.child(dataSnapshot.getKey);
             for(DataSnapshot parkingIdSnapshot : childDataSnapshot)
                {
                if(parkindIdSnapshot.hasChildren())
                   {
                   for(DataSnapshot distanceMap : parkingIdSnapshot)
                      {
                      String value = distanceMap.getValue(String.class);
                      }
                   }
                }
             }
         }
    @Override
    public void onCancelled(DatabaseError databaseError) 
         {}
    });

嗯,我只是直接写了这段代码,所以它是一种伪代码,所以基本上你可能已经知道了。祝你好运。

【讨论】:

  • 对不起,我的意思是 Firebase 控制台中的数据库规则索引
猜你喜欢
  • 2017-07-15
  • 2016-12-29
  • 2020-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-22
相关资源
最近更新 更多