gpt4 book ai didi

node.js - Firebase 在本地测试身份验证云功能

转载 作者:行者123 更新时间:2023-12-03 12:12:13 24 4
gpt4 key购买 nike

exports.sendWelcomeEmail = functions.auth.user().onCreate((user) => {
console.log(user.uid);
console.log(user.email);
console.log(user.displayName);
});

exports.getUserInfo = functions.https.onCall(async (data, context) => {
// get array of user IDs and returns information (from Users collection)
const userIDs = data.userIDs;
const result = [];
const querySnapData = await admin.firestore().collection("Users").get();
querySnapData.forEach((ele) => {
if (userIDs.indexOf(ele.id) !== -1 && ele.id !== context.auth.uid) {
result.push(ele.data());
}
});
return { res: result };
});
我的项目中有这两个函数 - 一个是可调用函数,另一个是身份验证触发函数。
所以在我的客户端应用程序中,我运行
firebase.functions().useFunctionsEmulator('http://localhost:5001');

let getUserInfo = functions.httpsCallable('getUserInfo');
getUserInfo({userIDs: data}).then(res => doSomething);
并在本地运行云功能
firebase emulators:start
但它说
functions[sendWelcomeEmail]: function ignored because the auth emulator does not exist or is not running.
所以在客户端应用程序中, getUserInfo效果很好,但不能触发 onCreate .
但是我找不到任何关于 auth emulator 的文档。 .
任何链接/文章/视频或答案表示赞赏。

最佳答案

Firebase Emulator Suite 目前支持 Cloud Firestore、实时数据库、Cloud Functions 和 Cloud Pub/Sub。它尚未模拟 Firebase 身份验证 API。因此,您发出的任何身份验证调用都将针对与模拟器关联的真实项目执行。
这也意味着您的 functions.auth.user().onCreate((user) => {目前不会在模拟器中触发 Cloud Function。您必须将其部署到服务器以测试此触发器。
要了解身份验证模拟器何时可用,我建议您关注 Firebase 的 release notes ,以及 main documentation page for the emulator suite列出了支持的产品。您还可以在 Github 上更密切地关注,无论是在提交中,还是在此 feature request 中.

关于node.js - Firebase 在本地测试身份验证云功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62736060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com