在我的firebase数据库中,我有一个"用户"节点
我使用 Firebase功能作为后端功能。运行在函数中的我的javascript代码(node.js)需要在向数据库添加新的user
时执行某些操作,这里是后端函数代码:
// required modules
const functions = require('firebase-functions');
const admin = require('firebase-admin');
// my backend function
exports.onUserCreated = functions.auth.user().onCreate(event => {
// Do something when a new user is created
}
我成功将后端函数部署到firebase函数。
然后,我在firebase数据库的users
节点下手动添加了一个用户。然后,我转到 Firebase函数,我看到控制台中列出了onUserCreated
函数,但执行次数为0.
当我在数据库中手动添加用户时,我的功能未被触发的原因是什么?
答案 0 :(得分:3)
您的功能是authentication trigger,而不是数据库触发器:
functions.auth.user().onCreate(...)
通过Firebase身份验证添加新用户时会触发,而不会在数据库发生更改时触发。
如果您想编写数据库触发器,请改为follow the instructions here。
答案 1 :(得分:1)
发生的事情是您创建了一个triggered by Firebase Auth事件的功能。这意味着它只会在新用户注册使用您的应用程序时触发。不是在他写信给数据库的时候。
如果您希望在"用户"下创建新用户时触发它。节点,您应该使用Realtime Database trigger:
exports.onUserCreated = functions.database.ref('/user/{userId}')
.onWrite(event => {
// Do something when a new user is created
}
编辑:访问存储在数据库中的用户电子邮件:
exports.onUserCreated = functions.database.ref('/user/{userId}')
.onWrite(event => {
// Do something when a new user is created
var email = event.data.val().email;
}