有没有办法获取所有子节点的密钥列表(一次或使用开放连接),而不传输这些子节点的所有数据?
答案 0 :(得分:6)
Firebase JavaScript SDK始终检索完整的节点,因此无法只读取密钥。
Firebase REST API具有参数shallow=true
,该参数仅检索该位置下的键。见https://firebase.google.com/docs/database/rest/retrieve-data#shallow
如果您不想使用REST API,则必须重新构建数据以允许所需的查询。在NoSQL数据存储中很常见的是维护自己的索引,仅用于此类查询。
E.g。
/users
"12-ad-b3-ad"
name: "Frank van Puffelen"
stackoverflowId: 209103
bio: "auihodasiuodsa ohdsau duia hdsauhio aoi das"
avatarUrl: "https://www.gravatar.com/avatar/12d378e6a9788ab9c94bbafe242b82b4?s=48&d=identicon&r=PG"
"18-a7-12-86"
name: "Linda H"
stackoverflowId: 3243018
bio: "as ihuew rew i noiueh ewo we weru irew ure oew"
avatarUrl: "https://i.stack.imgur.com/0lcm6.jpg?s=32&g=1"
/uids
"12-ad-b3-ad": true
"18-a7-12-86": true
/stackoverflowIds
209103: "12-ad-b3-ad"
3243018: "18-a7-12-86"