繁体   English   中英

Firebase:使用推创建新对象,然后同时将其推入

[英]Firebase: Create New Object With Push and Then Push to it Simultaneously

工具:Vanilla Firebase和Vanilla JavaScript

因此,我正在创建一个新的convo,并一次性添加它的第一条消息。

convos:{
    uniqueConvoID1:{
        uniqueMessage:{
          text:"Hi Gus"
        },
        ...
    },
    ...
}

但是因为两者都需要一个唯一的ID,所以我基本上需要同时进行两次推送 。一个创建新对象(例如uniqueConvoID1) ,然后在内部创建一个新消息,例如( uniqueMessageId )。

我尝试过先创建一个空对象,然后推送消息,但我认为先创建一个空对象无效。

问题:然后,如何在一个对象中初始化两个对象都需要唯一键的对象?

我尝试过的操作:(我推送了一条新消息并再次召集了会议。)

var newConvoIDRef =  firebaseConvosRef.push({
    authorName: 'Nick',
    text:"Hey!How you been?",
    timestamp: Date.now() - 99999
 });

是在仪表板上创建的:

-convos
     - -K2111111111111111 //unique convo id
         -authorName:"Nick"
         -text:"Hey! How have you been?"
         -timestamp:1446866141625

但是我需要以这种方式初始化新的convo:

 -convos
     - -K2111111111111111 unique convo id
         - -K222444444444444 unique message id
             -authorName:"Nick"
             -text:"Hey! How have you been?"
             -timestamp:1446866141625

我认为您正在使事情变得过于复杂。 当您添加新值时,Firebase会自动创建路径。 因此,这将创建整个链:

var convosRef = new Firebase('https://yours.firebaseio.com/convos');
var convRef = convosRef.push();
var msgRef = convRef.push();

msgRef.set({
    authorName: 'Nick',
    text:"Hey!How you been?",
    timestamp: Date.now() - 99999
 });

注意:当删除路径下的所有值时,Firebase也会自动清除路径。 因此,您可以通过以下方式删除树的整个分支:

msgRef.remove();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM