我需要使用firebase unique键的一个请求在firebase中存储一组对象。(没有数组索引作为键(
(let object_list = {
'0': {
'title':'title 1',
'time':'12.30pm',
},
'1': {
'title':'title 2',
'time':'12.30pm',
},
'2': {
'title':'title 3',
'time':'12.30pm',
},
}
this.agendaRef = firebase.database().ref('objs/');
let data = this.agendaRef.push();
data.set(object_list);
我希望输出
-LioB1b06T7tfVhbJmss6o
time: "12.30pm"
title:"title 1"
-LioB1b06T7tfVhbsdfsdf
time: "12.30pm"
title:"title 2"
-LioB1b06Tsdsdsd7tfVh2
time: "12.30pm"
title: "title 3"
但实际输出是
-LioB1b06T7tfVhbJm6o
0
time: "12.30pm"
title:"title 1"
1
time: "12.30pm"
title:"title 2"
2
time: "12.30pm"
title: "title 3"
每个呼叫push
都会生成一个ID。因此,如果您需要多个生成的ID,则需要多次调用push
。
要意识到的一个关键是,无参数的无参数的push()
是一个仅客户端操作。因此,您可以三次调用push()
以生成ID,并且仍然只执行单个写操作,类似这样的操作:
let object_list = [
{
'title':'title 1',
'time':'12.30pm',
},
{
'title':'title 2',
'time':'12.30pm',
},
{
'title':'title 3',
'time':'12.30pm',
}
}]
this.agendaRef = firebase.database().ref('objs/');
let object = {};
object_list.forEach((value) => {
object[this.agendaRef.push().key] = value;
})
data.set(object);