【发布时间】:2019-12-16 05:56:22
【问题描述】:
我目前正在使用 vuejs 和 firebase 构建一个应用程序,以在此应用程序中获取新用户,只有管理员权限的用户才能执行此任务。因此,在 Admin sdk 和云功能的帮助下,我设法弄清楚了如何从前端触发云功能。它自己的功能做了两件事: 1)在认证部分创建用户。 2) 在云 Firestore 数据库中添加用户 ID 为 documentid 的新用户。 (/users/$(userid))
这部分效果很好。我现在唯一缺少的是后端将最近创建的用户的用户 ID 返回到前端。
我尝试通过将 .then() 放在云函数代码中的 db.collection 之后并将 .then(result => 放在我的代码的前端中来实现它。
云功能代码
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();
exports.createNewUser = functions.https.onCall((data, context) => {
return admin.auth().createUser({
email: data.email,
displayName: data.name,
password: '123456',
emailVerified: true,
disabled: false
})
.then(() => {
return admin.auth().getUserByEmail(data.email)
.then(user => {
db.collection('users').doc(user.uid).set({
mail: user.email,
name: user.displayName
})
.then(() => {
return user.uid
});
});
});
});
前端代码
methods: {
addNewUser(){
const createNewUser = firebase.functions().httpsCallable('createNewUser');
createNewUser({email: 'test@testing.com', name: 'testName'})
.then(result => {
console.log(result)
})
}
}
在控制台中我得到一个数组 {data: null}。
【问题讨论】:
标签: javascript firebase vue.js google-cloud-firestore google-cloud-functions