javascript - 删除了以下划线开头的 Firebase 数据库键

标签 javascript angularjs firebase-realtime-database angularfire

我开始编写一个网络应用程序,用户对象有一个 _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/

相关文章:

javascript - 在 PHP 中获取 MySQL DateTime 到 JavaScript 中的秒

javascript - 将 html 表单输入链接到 javascript 对象

AngularJS - ng-repeat按键时的orderBy值,值对

python - 如何将从 Firebase 导出的数据作为 json 加载到 Python 脚本中

javascript - 为什么这个jQuery click函数不起作用?

javascript - 无法读取未定义的属性 '-1'

javascript - 设置/更改 HTML 隐藏输入值时可以捕获什么事件

angularjs - 在 AngularJS 中处理来自模板的链接

ios - 在 Firebase 中获取有限数量的记录

ios - 如何保存到 Firebase - Swift