Firebase Realtime Database查询计费咨询:查询name=John的计费方式
Firebase Realtime Database 查询计费说明(针对name字段equalTo查询)
核心计费逻辑取决于是否创建对应索引:
- 未创建
profile/name索引时:会触发全表扫描,遍历所有用户记录。
此时Firebase需要逐个读取每个用户的profile/name节点来判断是否匹配,假设存在10万用户,就会产生10万次读取计费(每个用户的name节点读取一次)。如果查询最终返回匹配的用户完整数据,还会额外收取匹配节点的所有子节点读取费用。 - 创建了
profile/name索引时:不会遍历所有用户,Firebase会通过索引直接定位到匹配的记录。
计费仅针对匹配到的记录的节点数量:- 若查询返回完整的用户节点(包含
profile和some-extra-data),则每个匹配的用户节点下的所有子节点(比如profile、name、surname、some-extra-data)都会计入读取次数; - 若你仅需查询
name字段(调整查询逻辑只获取该节点),则仅收取匹配的name节点的读取次数。
- 若查询返回完整的用户节点(包含
关键提示:
你担心的“10万次读取”只会在未创建索引的情况下发生,务必给查询字段创建对应索引,既能提升查询效率,也能避免不必要的高额计费。
内容的提问来源于stack exchange,提问作者manic
相关产品推荐
相关产品推荐

