javascript - 如何使用javascript从firebase中的child检索子值?
问题描述
var ref = firebase.database().ref("games/" + gameId + "/patterns");
ref.on("child_changed", function(snapshot){
var pattern = snapshot.key;
console.log(pattern);
});
这只是给了钥匙。如果我想提取 status = 0 的玩家名字怎么办
我知道快照包含我需要提取的每个子数据,因为当我使用
var ref = firebase.database().ref("games/" + gameId + "/patterns");
ref.on("child_changed", function(snapshot){
var value = snapshot.val();
console.log(value);
});
我得到这样的数据..
我无法根据需要获取孩子的数据。
解决方案
您提取的值是常规 JavaScript/JSON 对象,因此您可以像访问任何其他 JavaScript 对象一样访问其成员。Firebase 会将您的1
, 2
,3
级别键转换为数组,这意味着它会null
在该数组的开头添加一个项目。有关详细信息,请参阅:Firebase 数据库在每个新节点的开头返回 null
要遍历其子节点下的所有子节点,patterns
并获取您将执行以下操作status
的玩家:0
var ref = firebase.database().ref("games/" + gameId + "/patterns");
ref.on("child_changed", function(snapshot){
snapshot.forEach(function(child) {
if (child.val() && child.val().status == "0") {
console.log(child.val().player);
});
});
});
推荐阅读
- ssis-2012 - 目标实体未出现在 CRM SSIS 目标编辑器中
- pentaho - 如何从 Pentaho 的图表中显示带有动态参数的报告?
- reactjs - 在 React js 中为 Select 标签的 value 属性赋值
- c# - c#:理解和消费XMLDiff差异-文件
- matlab - 长时间录制时如何停止跳过数据?
- android - 如何执行为 Listview 单独创建的 XML 事件
- c - typedef volatile struct 在 clang ast 中被识别为匿名
- vue.js - vuejs中左侧或右侧带有操作(按钮)的文本字段
- flutter - 如何在 Flutter 的 Dismissible 小部件中禁用向左或向右滑动?
- ansible - 当我使用变量时,ansible playbook 语法错误