Cloud Functions for Firebase - 创建新用户时写入数据库

Posted

技术标签:

【中文标题】Cloud Functions for Firebase - 创建新用户时写入数据库【英文标题】:Cloud Functions for Firebase - write to database when a new user created 【发布时间】:2017-11-12 22:44:07 【问题描述】:

我是 Firebase 和 javascript 语言的全新 Cloud Functions。每次用户创建写入数据库时​​,我都尝试添加一个函数。这是我的代码:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.addAccount = functions.auth.user().onCreate(event => 
const user = event.data; // The firebase user
const id = user.uid;
const displayName = user.displayName;
const photoURL = user.photoURL;

return admin.database().ref.child("/users/$id/info/status").set("ok"); );

我想要做的是每次用户注册我的应用程序时,这些功能都会将他的状态写入数据库中“OK”。但是我的代码不起作用。

我做错了什么?

【问题讨论】:

【参考方案1】:

我发现了问题。问题是不应该使用 $id,而且我不应该使用孩子。所以代码应该是这样的:

const functions = require('firebase-functions');
const admin = require('firebase-admin');

admin.initializeApp(functions.config().firebase);

exports.addAccount = functions.auth.user().onCreate(event => 
    const user = event.data; // The firebase user
    const id = user.uid;
    const displayName = user.displayName;
    const photoURL = user.photoURL;

    return admin.database().ref("/users/"+id+"/info/status").set("ok"); 
);

【讨论】:

您可以使用admin.database().ref(`/users/$id/info/status/`) 代替("/users/"+id+"/info/status")。使用反引号而不是引号来编写查询字符串

以上是关于Cloud Functions for Firebase - 创建新用户时写入数据库的主要内容,如果未能解决你的问题,请参考以下文章