Firebase云函数-创建用户时写入数据库
我想在每次注册新用户时写入数据库。这是我的代码:Firebase云函数-创建用户时写入数据库,firebase,react-native,firebase-realtime-database,google-cloud-functions,Firebase,React Native,Firebase Realtime Database,Google Cloud Functions,我想在每次注册新用户时写入数据库。这是我的代码: const functions = require('firebase-functions'); exports.newUserToDatabaseTest = functions.auth.user().onCreate((user) => { var current = new Date().toString(); firebase.database().ref('users/' + firebase.a
const functions = require('firebase-functions');
exports.newUserToDatabaseTest = functions.auth.user().onCreate((user) => {
var current = new Date().toString();
firebase.database().ref('users/' + firebase.auth().currentUser.uid).set({
email: user.email,
creationDate: current
})
});
它部署正确,但在我的React本机应用程序中注册新用户后,不会发生任何事情。
我做错了什么?在编写Firebase云函数时,请始终注意,如果运行异步代码,则需要“告诉”函数等待。否则,它将在代码执行之前停止。为此,我们将您的
集
返回到数据库
另外,auth
触发器提供了user
,因此您可以使用它来获取用户uid
firebase.auth().currentUser.uid
在云函数中不起作用
尝试将代码更改为以下内容:
const functions=require('firebase-functions');
const admin=require('firebase-admin');
admin.initializeApp();
exports.newUserToDatabaseTest=functions.auth.user().onCreate((用户)=>{
var current=新日期().toString();
返回admin.database().ref('users/'+user.uid).set({
电子邮件:user.email,
创作日期:当前
})
});
您需要在云函数中使用Admin SDK。初始化可以进行RTDB更改的管理应用程序实例。(const admin=require('firebase-admin');admin.initializeApp();
)然后执行admin.database().ref('…')…