node.js - “ref.child 不是函数”
问题描述
我正在尝试实现一个简单的云功能,当一个新用户被添加到我的 /users 路径而没有任何默认值时,它会向该新用户添加一个默认对象结构。
如果在该用户名下没有指定子级,则该方法应该简单地返回。
const admin = require('firebase-admin');
const functions = require('firebase-functions');
admin.initializeApp();
exports.defaultUser = functions.database.ref('/users/{any}')
.onCreate((snapshot, context) => {
var ref = functions.database.ref('/users');
ref.child('%s', snapshot.key).once('value', function
(snapshot) {
var exists = (snapshot.val() !== null);
if (!exists) return;
});
const userObj = {
name: "default",
mail: "default",
pwd: "default",
token: "default",
groups: {},
plants: {},
points: 0
}
return snapshot.ref.child.set(userObj);
});
这将在函数日志中返回“ref.child 不是函数”。
我对 javascript 和 firebase 很陌生,所以对于有经验的人来说,这一定很令人困惑。
解决方案
您正在寻找:
snapshot.ref.set(userObj);
或者:
snapshot.ref.child("somekey").set(userObj);
另请注意,您将希望使用事务来防止在用户写入数据时覆盖数据的竞争条件。
推荐阅读
- mysql - 创建表 mySql 语法错误(在其他版本上工作)
- php - libphonenumber、php 和 CI3 - 尝试验证电话号码但未获得预期结果
- python - 如何打印与重复键关联的所有值?
- swift - 无法将 segmentedControl 设置回未选择索引
- java - 如何从数据库中删除项目?
- ionic4 - 在ionic 4中上传时如何动态更新文件名
- git - Jekyll 没有更新所有文件
- ios - 在 Stackview 中设置项目的 ID
- android - Android如何将jar文件导入库模块?
- json - 如何在 Angular6 中从 JSON 文件中获取日期值