【问题标题】:Firebase storage query if an image file existsFirebase 存储查询是否存在图像文件
【发布时间】:2018-09-12 18:51:32
【问题描述】:

对于每个唯一的用户 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 岁的用户进行排序后,在同一查询中过滤具有个人资料图片的用户。

【问题讨论】:

  • 您是否在问是否可以按一个字段排序在同一查询中按第二个字段过滤?
  • 是的,首先对 12 岁的用户进行排序,然后在同一查询中过滤具有个人资料图片的用户。 @DougStevenson
  • if they who have a profile image in the same query json 输出中没有包含 profileImage 的任何节点,您希望如何过滤它们?至少,如果有的话,我们也许可以施展魔法……
  • 是的,这就是我的观点。我在 json 中没有节点,但是如果存在这样的文件,是否可以查看存储并对它们进行排序? @ʍѳђઽ૯ท
  • 您可能要考虑先添加一个profileImage 节点,然后检查用户是否有imgProfile。但是,当它甚至没有节点时,你为什么要检查任何东西呢?对不起,听起来很荒谬......

标签: android firebase firebase-realtime-database


【解决方案1】:

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

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

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

对一个字段(“年龄”)进行排序,获取结果,然后根据这些用户对象是否具有 jpg 对客户端进行排序/过滤。或者,Firestore 确实允许查询多个字段。

【讨论】:

    猜你喜欢
    • 2017-08-10
    • 2022-01-24
    • 2021-02-26
    • 2019-05-22
    • 2016-10-11
    • 2013-01-13
    • 1970-01-01
    • 2016-11-06
    • 1970-01-01
    相关资源
    最近更新 更多