javascript - 将数组添加到查询中的所有节点 - Firebase JS
问题描述
我得到了这样的结构:
{'-LH88EMN8Q0Mh5ZxbXyx':{
u_id: 101,
g_id: 6064,
members:[101, 102]
last_msg:'testing'
},
'-eyJ0eXAiOiJKV1QiLC':{
u_id: 102,
g_id: 6065,
members:[101, 102],
last_msg:'testing'
},
etc
}
我正在使用查询来恢复具有组 ID 的每个项目;但我需要在查询中的每个交互中添加一个当前 user_id 的数组。就像是:
firebase.database().ref('msgs').orderByChild('g_id').equalTo(gID)
.update({ dBy: [user_id] });
但不承认该功能;或者什么都没有发生。
解决方案
Firebase 实时数据库只有在知道要写入的确切位置时才能写入数据。它不支持您可能从 SQL 中知道的更新查询之类的东西。
这意味着您需要将侦听器附加到查询,并从那里更新每个单独的结果。
它看起来像这样:
firebase.database().ref('msgs').orderByChild('g_id').equalTo(gID)
once("value", function(snapshot) {
snapshot.forEach(function(child) {
child.ref.update({ dBy: [user_id] });
});
});
推荐阅读
- java - prepareStatement 为 getPassword 抛出错误
- google-analytics-api - 无法使用 Google Analytics API 加载帐户
- angular - Angular:在其他任何事情之前完全安装服务工作者
- c++ - 如何在 GMock 中使用带有测试夹具的模拟?
- r - R 从 Sparklyr 中的 ALS 实施中提取潜在因素
- ruby-on-rails - 定期 PG::UndefinedTable: 错误: 关系不存在错误
- java - 在 Java 中为接口实例列表实现通用容器
- css - Flexbox:弹性列上的自动宽度
- php - 从 php 数组中获取键并使用 SQL WERE .. IN .. 子句过滤结果
- autolayout - iOS App显示错误:按钮旁边的黑色矩形伪影