我使用以下代码将新记录插入firebase
var fireBaseRef = new Firebase("https://todoredux1.firebaseio.com/todos");
var newObjRef = fireBaseRef.push();
newObjRef.set({'id': nextId, 'text': text, 'complete': false});
return dispatch(addLocalTodo(nextId, text));
它有效但我的数据看起来像
之前我的按键是整数(1,2,... 6),但现在按键看起来很有趣。
问题是有趣的关键是,当键是整数时,查询结果会返回一个很好的对象数组
但只要输入带有趣键的记录。查询结果的结构更改为
我用来查询数据的代码是
var fireBaseRef = new Firebase("https://todoredux1.firebaseio.com");
fireBaseRef.child('todos').once('value', function(todosRef){
return dispatch(receiveTodosSuccess(todosRef.val()))
}, function(errorText) {
return dispatch(receiveTodosFailure(errorText))
});
答案 0 :(得分:2)
当您使用.push
时,您将拥有搞笑密钥。您需要使用child然后set。为了设置你想要的键,你可以这样做:
// ...
newObjRef.child(nextId).set({'id': nextId, 'text': text, 'complete': false});
如果您使用.child(nextId)
,则会创建一个包含nextId
值的密钥并解决您的问题。
那就是说,使用.push
然后.set
可能没有太大意义,因为你会创建一个搞笑密钥然后定义它的价值。也许这将是一种更好的方法来实现您的目标:
// Define your Firebase reference.
var fireBaseRef = new Firebase("https://todoredux1.firebaseio.com/todos");
// Set some data with the key you want.
newObjRef.child(nextId).set({'id': nextId, 'text': text, 'complete': false});
希望它有所帮助。