繁体   English   中英

如何仅检索子节点密钥 Firebase?

[英]How to retreive the child Nodes keys only Firebase?

在此处输入图像描述

实际上我正在将所有主题的数据提取到 listView

它们是病理学和社会科学。

当我检索密钥时,我得到了结束日期,开始日期也是如此。

我怎样才能得到唯一有像这里病理学和土壤场景这样的节点的孩子。 ?

当您使用 Firebase 检索节点时,它始终检索整个节点。 没有办法得到一个没有子节点的节点,或者(超出查询所能做的)它的子节点的子集。

当您有这种需求时,通常意味着您在一个分支中混合了两种类型的数据。 Firebase 文档建议避免此类数据嵌套

在您的情况下,我会将数据拆分为两个顶级节点,每个节点的子节点都有相同的键。 就像是:

ExamInfos: {
  "-MV8_...": {
    "endingDate": ...,
    "examType": ...,
    "programme": ...,
    "startingDate": ...
  }
},
ExamSugbjects: {
  "-MV8_...": {
    "PATHOLOGY": { ... },
    "SOIL SCIENCE": { ... }
  }
}

现在,您可以通过加载其ExamInfos子节点来获取考试的所有科目,通过加载其ExamSubjects子节点来获取所有其他信息,如果需要,您可以同时加载两者。 与许多开发人员最初的预期相反,这不会花费更多时间,因为 Firebase 可以通过其现有的 web 套接字连接对请求进行管道传输


作为单独的建议,我还考虑以允许更多排序和过滤的格式存储日期。 最常见的格式是 2021 年 3 月 7 日的2021-03-07

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM