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 - 创建新用户时写入数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Firebase Cloud Functions 测试中模拟 FCM admin.messaging().sendToDevice() 的实现

如何使用 Google Python Client for Cloud Functions 获取 Google Cloud Functions 列表?

Cloud Functions for Firebase 超时

Cloud Functions for Firebase onWrite 超时

在 Cloud Functions for Firebase 中访问 db 数据

Cloud Functions for Firebase 组织