Firebase存储查询是否存在图像文件

时间:2018-09-12 18:51:32

标签: android firebase firebase-realtime-database

对于每个唯一的用户ID,Firebase存储中可能存在或可能没有包含名为 profile.jpg 的图像的目录。 我正在尝试创建一个对所有用户进行排序的查询:

  1. 使用"age": 12
  2. 存储区中以用户ID命名的目录下有一个 profile.jpg 文件。

我的数据库结构是:

{
  "Users" : {
    "uid1" : {
      "name" : "Josh",
      "age": 12
    },
    "uid2" : {
      "name" : "June",
      "age": 13
    }
  }
}

我的存储结构如下:

example.appspot.com > uploads > uid1 > profile.jpg

我设法解决了第一部分,该部分使用以下内容对12岁以下的用户进行了排序:

Query query = FirebaseDatabase.getInstance().getReference().child("Users").orderByChild("age").equalTo(12);

但是我还如何添加第二个逻辑,即首先对12岁的用户进行排序之后,过滤在同一查询中具有个人资料图片的用户。

1 个答案:

答案 0 :(得分:0)

我认为不可能将FirebaseDatabase查询与Firebase Storage查询结合使用。我建议向数据库中添加一个节点,该节点说明用户是否具有profile.jpg,然后选择要在哪个字段上进行排序。

 {
  "Users" : {
    "uid1" : {
      "name" : "Josh",
      "age": 12,
      "hasPhoto": true
    },
    "uid2" : {
      "name" : "June",
      "age": 13,
      "hasPhoto": false
    }
  }
}

然后,我认为Firebase Realtime Database不允许对多个字段进行排序,因此您可以这样做:

在一个字段(“年龄”)上排序,获取结果,然后根据这些User对象的客户端是否具有jpg对其进行排序/过滤。另外,Firestore允许查询多个字段。