javascript - 指示本地模拟的 firebase 功能使用身份验证模拟器
问题描述
我正在使用 firebase 模拟器套件来测试我的应用程序。我已经为托管、身份验证、firebase 和功能设置了模拟器。
当我尝试使用它从前端创建用户时,firebase.auth().createUserWithEmailAndPassword()
它工作正常。
所有其他模拟器也按预期工作..
我可以从我的前端调用一个可调用函数:
在公共/app.js
const createUser = functions.httpsCallable('createUser');
createUser({
username: username,
email: email,
password: password,
})
在函数/index.js
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.createUser = functions.https.onCall((data, context) => {
// creates a new user
return admin.auth().createUser({
email: data.email,
emailVerified: false,
password: data.password,
displayName: data.username,
disabled: false
});
});
该函数被调用,但它不会在 auth 模拟器上创建用户,而是在生产中创建用户。
我希望在 auth 模拟器上创建我的用户,以便它可以在我的 functions/index.js 中触发 auth 函数
例如:
exports.userCreated = functions.auth.user().onCreate(user => {
// creates a firestore document in users collection
return admin.firestore().collection('users').doc(user.uid).set({
email: user.displayName
});
});
似乎没有任何关于将 Node.js Firebase SDK 连接到身份验证模拟器 ( admin.auth().useEmulator() is not defined
) 的内容。
如何指示 Node Admin SDK 使用本地身份验证模拟器?
解决方案
我遵循@Vazgen 的回答,我可以确认将 firebase-admin 更新到最新版本可以修复它,在撰写本文时版本为 9.9.0。
npm install firebase-admin@latest
推荐阅读
- android - 使用 AndroidX Navigation Compose 后方向更改后 Activity 泄漏
- javascript - 将函数作为参数传递给在第一个函数内部调用的另一个函数
- android - Android AlertDialog 未显示
- python - 为什么在将 HLS4ML 与 Vivado HLS 一起使用时出现错误,未找到 Vivado 安装
- assets - 程序未返回预期曲线
- dataframe - Datframe Struct fieldType 到 Pyspark 上除最后一个字段之外的字段数组
- java - 如何在function.json中设置isSessionsEnabled = true?
- reactjs - 无法在 dangerousSetInnerHTML 中正确呈现内容
- cucumber-jvm - 如何在自定义 softAssertion 期间将捕获的屏幕截图附加/嵌入到 Cucumber 报告中?
- electron - 如何通过 contextBridge / IPCRenderer 将结果发送给发件人?