Firebase:使用推送创建新 Object 然后同时推送到它
Firebase: Create New Object With Push and Then Push to it Simultaneously
工具:原版 Firebase 和原版 JavaScript
所以我正在创建一个新的会议并一次性添加它的第一条消息。
convos:{
uniqueConvoID1:{
uniqueMessage:{
text:"Hi Gus"
},
...
},
...
}
但是因为两者都需要一个唯一的 ID,所以我基本上需要同时进行两次推送。一个创建新的 object(如 uniqueConvoID1)
,然后在内部创建一条新消息,例如 (uniqueMessageId
).
我试过先创建一个空 object 然后推送消息,但我认为先创建一个空 object 是无效的。
问题:
然后如何在 object 中初始化 object,其中两个 object 都需要一个唯一的密钥?
我尝试了什么:(我推送了一条新消息并取回了会议。)
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();
工具:原版 Firebase 和原版 JavaScript
所以我正在创建一个新的会议并一次性添加它的第一条消息。
convos:{
uniqueConvoID1:{
uniqueMessage:{
text:"Hi Gus"
},
...
},
...
}
但是因为两者都需要一个唯一的 ID,所以我基本上需要同时进行两次推送。一个创建新的 object(如 uniqueConvoID1)
,然后在内部创建一条新消息,例如 (uniqueMessageId
).
我试过先创建一个空 object 然后推送消息,但我认为先创建一个空 object 是无效的。
问题: 然后如何在 object 中初始化 object,其中两个 object 都需要一个唯一的密钥?
我尝试了什么:(我推送了一条新消息并取回了会议。)
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();