如何在没有新密钥的情况下更新现有父级的一个Firebase子级?

时间:2017-04-27 02:18:30

标签: javascript node.js firebase firebase-realtime-database

我在Firebase网站上有这样的数据结构:

用户:

-KixIFileAu48UrbAI8k  
  --name: Chris  
  --state: 0  
  --contact: www.site.com/emailLink   
-KvxTFdleAu4rUrbAI8z   
-KetdTdWefu4rtrbER0q

我创建了一个Node JS bot,用于检查每个用户的状态是否等于0,如果是,则转到联系人链接并抓取其中列出的电子邮件。从那里,我希望我的机器人将状态从0更改为1,以便我和我机器人知道它已经被审查过了。

我不能为我的生活弄清楚如何更新这个。似乎firebase教程要求我推出一个我不理解的新密钥。

为什么我不能这样做:

firebase.database().ref('Users').child('state').update("1");

如果我试试,我明白了:

  

"错误:Firebase.update失败:第一个参数必须是包含要替换的子项的对象。"

这似乎是超级直接的事情,但我无法弄清楚。

之后,我可以使用相同的方法将新的(以前不存在的)电子邮件子项推送给每个用户,并使用我收到的电子邮件地址吗?

1 个答案:

答案 0 :(得分:0)

function getUser(Users){
 var keys = Object.keys(Users);
 var User = Users[keys[i]];

  var id = keys[i];

var state = User.state;
var contact = User.contact;

if(contact != "" && contact != undefined){
    console.log("Key:"+id);
firebase.database().ref("Users").child(keys[i]).child("state").set("1");

这最终解决了问题。这段代码的最后一行是我使用过的,效果很好!