目前,Firebase不会按照输入的顺序存储数据。对于前 - 可能有2个现有的孩子,并插入一个新的孩子,新的孩子去和现有的孩子坐在中间!我想这可以按字母顺序排列,但我想只以正确的顺序存储数据。
firebase.database().ref('someChildRef').set({
//Could insert anywhere
});
我认为push可以按正确的顺序插入它,但push也会生成一个我不想要的唯一键,我想只使用set以正确的顺序插入数据。
答案 0 :(得分:0)
听起来您正在寻找Firebase的push()
方法,该方法根据时间戳生成唯一键:
firebase.database().ref('someChildRef').set({
//Will result at "the end"
});
答案 1 :(得分:0)
var messageListRef = new Firebase('https://samplechat.firebaseio-demo.com/message_list');
var newMessageRef = messageListRef.push();
newMessageRef.set({ 'user_id': 'fred', 'text': 'Yabba Dabba Doo!' });
// We've appended a new message to the message_list location.
var path = newMessageRef.toString();
尝试使用push()
方法而不是设置。根据他们的文档:
push()生成的唯一名称以客户端生成的时间戳为前缀,以便按时间顺序对结果列表进行排序。
答案 2 :(得分:0)
无法将数据插入Firebase到所需位置。 Firebase数据按字母顺序排序,所有新插入的数据都将相应重新排列。
使用query规则按您想要的顺序返回数据。
如:
orderByChild()
orderByKey()
orderByValue()
equalTo()
你对push()
是正确的,它总会创建一个唯一的密钥并添加到最后,就像推送到数组将添加到最后一样。