使用node.js使用Firebase Auth创建新用户时设置Firestore文档

Mik*_*ike 3 firebase google-cloud-firestore

我正在使用Firebase云功能,Firebase身份验证和Firestore。我之前在firebase数据库中已经做到这一点,但只是不确定在firestore中如何将用户集合中的文档设置为新创建的firebase auth用户的uid。

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

const db = admin.firestore()

exports.createUser  = functions.auth.user().onCreate(event => {

 const uid  = event.data.uid;
 console.log(uid);

 db.collection('users').doc(uid);


});
Run Code Online (Sandbox Code Playgroud)

上面的操作在日志中可以正常完成,但是在数据库中未设置uid。我是否需要在某个阶段拨打电话?

abo*_*rak 6

const collection = db.collection("users")
const userID = "12345" // ID after created the user.
collection.doc(userID).set({
    name : "userFoo", // some another information for user you could save it here.
    uid : userID     // you could save the ID as field in document.
}).then(() => {
    console.log("done")
})
Run Code Online (Sandbox Code Playgroud)


ffr*_*itz 5

请注意,onCreate返回值已更改,它现在确实返回了用户,因此event.data.uid不再有效。

完整的函数应该看起来像这样,它将uid在“用户”根集合中创建一个包含用户的文档。

exports.createUser = functions.auth.user().onCreate((user) => {
    const { uid } = user;

    const userCollection = db.collection('users');

    userCollection.doc(uid).set({
        someData: 123,
        someMoreData: [1, 2, 3],
    });
});
Run Code Online (Sandbox Code Playgroud)