如何只检索Firebase上的特定属性?

时间:2017-04-10 17:12:17

标签: android firebase firebase-realtime-database

我有一个Firebase数据库,用于存储用户数据,例如id,points,nickname。现在我创建了一个排行榜,我只需要一些(缺口,分数),现在我使用这样的东西:

    DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference("users");
    Query query = mDatabase.orderByChild("points");
    //initialize Firebase adapter
    ListAdapter adapter = new CustomFirebaseAdapter<User>(this, User.class, R.layout.list_item, query) {
        @Override
        protected void populateView(View v, User model, int position) {
            //populate the ListView

然后我在模型上使用getter方法。 现在我担心代码的安全性,我认为每部手机都会下载每个用户内存储的所有数据。有没有办法只检索我需要的属性?

2 个答案:

答案 0 :(得分:0)

Understand Firebase Realtime Database Rule处查看Google Firebase documentation

您可以在Firebase Database创建资源,并根据发出请求的给定用户ID限制读写权限。

{{1}}

答案 1 :(得分:0)

您必须为用户实例创建规则集。 例如,拒绝读取和写入 importantAtributte

{
  "rules": {
    "users": {
      "$importantAtributte": {
        ".read": false,
        ".write": false"
      }
    }
  }
}

有关详细信息:https://firebase.google.com/docs/database/security/securing-data