我有这样一个数据 struct ,其中TODO按照path/todos/uid进行组织/

{
  "metausers" : {
    "simplelogin:1" : {
      "displayName" : "John Doe",
      "provider" : "password",
      "provider_id" : "1"
    },
    "simplelogin:2" : {
      "displayName" : "GI Jane",
      "provider" : "password",
      "provider_id" : "2"
    }
  },
  "todos" : {
    "simplelogin:1" : {
      "-JUAfv4_-ZUlH7JqM4WZ" : {
        "completed" : false,
        "done" : false,
        "group" : false,
        "private" : false,
        "subject" : "First"
      },
      "-JUAfveXP_sqqX32jCJS" : {
        "completed" : false,
        "done" : false,
        "group" : false,
        "private" : true,
        "subject" : "Second"
      },
      "-JUAfwXnMo6P53Qz6Fd2" : {
        "completed" : false,
        "done" : false,
        "group" : false,
        "private" : false,
        "subject" : "Third"
      }
    },
    "simplelogin:2" : {
      "-JUAg9rVemiNQykfvvHs" : {
        "completed" : false,
        "done" : false,
        "group" : false,
        "private" : false,
        "subject" : "Q first"
      },
      "-JUAgAmgPwZLPr2iH1Ho" : {
        "completed" : false,
        "done" : false,
        "group" : false,
        "private" : false,
        "subject" : "Q second"
      },
      "-JUAgBfF8f7V5R5-XgrY" : {
        "completed" : false,
        "done" : false,
        "group" : false,
        "private" : true,
        "subject" : "Q third"
      }
    }
  }
}

我想查询待办事项,得到private:true的所有记录.可以使用火基(Angular 火)吗?我应该怎么做?或者我应该稍微go 规格化一些,安排好路径/私密,以避免走下待办事项?

推荐答案

There are no WHERE clauses in Firebase. Check out this thread for some great structural tips on searching by multiple fields, this thread on database style queries, this blog on queries, and the docs.

你的第一种方法应该是对数据进行分段,并将其读回.如下所示:

/todos/public
/todos/private
/todos/completed

You can also utilize priorities as explained in the docs. Then fetch items based on priority.

如果列表少于1000个(如果数据被正确分区,那么应该是这样),您可能只需要抓取todo列表,并在客户端对其进行过滤——对于这样的短集合来说,这是一个很好的 Select ,尤其是在使用像Angular这样的绑定库时.

Json相关问答推荐

在T—SQL中将STR_AGG与JSON_ARRAY结合起来

从JSON格式提取数据时分隔通用名称

Jolt-Json转换:通过引用标识符(而不是索引)设置值

使用 JSON 和相对日期设置日历视图中 SharePoint 列表项的背景 colored颜色 格式

使用 jolt 变换展平嵌套 JSON - 非常复杂

如何编写 jolt 规范以将不同的对象转换为数组

如何从字符串中创建一个逗号分隔的列表,由 API 中的 JSON 对象内的编号空格分隔?

Powershell 无法从名为 count 的键中获取价值

使用 System.Text.Json 序列化记录成员

如何为包含一些固定值并可能具有其他附加值的数组字符串创建数组 json 架构

如何将西里尔字母转换为 utf16

如何让 JSON.NET 忽略对象关系?

将json字符反序列化为枚举

JSON.NET JsonConvert 与 .NET JavaScriptSerializer

在 Rails 3 中处理 JS/ERB 模板中的 JSON

如何在 swift 2 中获取 Alamofire.request().responseJSON 的结果值?

严重:找不到媒体类型 = 应用程序/json、类型 = 类 com.jersey.jaxb.Todo、通用类型 = 类 com.jersey.jaxb.Todo 的 MessageBodyWriter

Jersey 2.0 相当于 POJOMappingFeature

设置对象不是 JSON 可序列化的

从 JSON 到 JSONL 的 Python 转换