我开始编写一个网络应用程序,用户对象有一个 _username
键,所以它在开头。
如果我将对象添加到 firebase 数据库,它不存在 - 其他一切都存在。
为什么这个键/值对不在数据库中?我的意思是它是有效的 JSON,不是吗?
我的意思是除了简单地重命名它还有其他解决方案吗?
我被推送到数组的对象具有以下结构:
{
_username:"",
history:[],
// ...
}
我的代码:
var users = $firebaseArray(ref.child("user"));
// adding user
users.$add($scope.session.user);
// logging afterwards - also no '_username'
// logging on init
users.$loaded().then(function (data) {
$log.debug(data);
});
一切都被存储,除了下划线变量...
最佳答案
看起来 $add()
(或者更具体地说是 $firebaseUtils.toJSON()
)删除了名称以 _
开头的属性.一个快速查看的方法是:
console.log($firebaseUtils.toJSON(user));
解决方法是通过 JavaScript SDK 将用户对象直接写入数据库:
ref.child("user").push(user);
这确实用有效键名写入所有属性,包括以_
为前缀的属性。
由于 AngularFire 构建在相同的 JavaScript SDK 之上,它会立即获取更改。
jsbin 中的演示:http://jsbin.com/lobadej/edit?js,console
关于javascript - 删除了以下划线开头的 Firebase 数据库键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41638521/