我创建了一个云功能来创建Firebase身份验证用户并将用户的数据记录到Firestore中。
云功能
const admin = require('firebase-admin');
admin.initializeApp();
exports.createUser = functions.https.onCall((data, response) => {
admin.auth().createUser({
email: data.email,
password: data.password,
displayName: data.name
}).then(user => {
return admin.firestore().collection('users').doc(user.uid).set({
email: data.email,
id: user.uid,
name: data.name,
role: data.role
});
}).then(() => {
return { status: true, message: 'User added successfully!' };
}).catch(error => {
return { status: false, message: 'Error occurred while creating the user!' };
})
})
Angular .ts文件
export class AddUserComponent implements OnInit {
constructor(private angularFireAuth: AngularFireAuth) {}
ngOnInit(): void {
}
onSubmit(user) {
this.angularFireFunctions.httpsCallable('createUser')(user).subscribe(response => {
console.log(response);
}, error => {
console.log(error);
});
}
}
当我使用angular / fire在我的角度应用程序中调用此函数时,它将返回null。另外,最多需要3分钟才能将用户添加到Firestore。我应该在这段代码中修改什么?
答案 0 :(得分:2)
就像在Firebase文档中发送关于onCall函数here的结果一样,您应该返回任何异步函数。因此,在云功能的return
之前添加admin.auth()...
关键字。