繁体   English   中英

Firebase 数据库:从孩子那里获取所有孩子的数据

[英]Firebase Database: get all child's data from childs

我希望能够区分我的content type并获取所有其他数据,但我不知道如何在content之后通过 ID。

我想要来自 -NBC22CHEk3ebNxdlYOi、-NBC-Nfz6e5yppFlxU7S、-NBC1TVY-TzT7yfrSA3o 的所有数据,以后可以从现有用户和新用户那里获得新的视频 ID

/content/{user_uid}/{content_uid}

数据库结构

如果我只想要一个用户的内容,那么我可以这样写:

val uid = FirebaseAuth.getInstance().uid
// url is just a placeholder for the real database url
val ref = FirebaseDatabase.getInstance(url).getReference("/content/$uid")

我想要来自所有用户的类型值为“video”的所有内容。

对于您的实际数据库结构,这实际上是不可能的。 实时数据库中的所有查询都在一个平面节点列表上工作,您要对其执行过滤/排序的值必须位于每个直接子节点下的固定路径。

不幸的是,这不是你的情况,因为你在content节点下有一个动态键,它实际上是 UID,这也意味着你不能过滤type 如果您想允许这样做,那么您必须创建一个平面视频列表,其中 UID (SIH5...89j1) 是每个视频 object 中的一个属性。 这已经实现了,因为publisher_uid正是如此。

简而言之,从数据库树中删除额外的 (UID) 级别。 或者,保持原样,并对数据进行非规范化。 基本上创建一个这样的新结构:

/content/{content_uid}

看,没有涉及 UID。 如果您是 NoSQL 数据库的新手,这听起来可能有些奇怪,但实际上这是一种很常见的做法。

暂无
暂无

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

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