我正在使用 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
});
});
此函数被调用,但它不会在身份验证模拟器上创建用户,而是在生产中创建。
我希望在身份验证模拟器上创建我的用户,以便它可以在我的 functions/index.js 中触发身份验证功能
例如:
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 使用本地身份验证模拟器?
答案 0 :(得分:0)
我遵循了@Vazgen 的回答,我可以确认将 firebase-admin 更新到最新版本可以修复它,在撰写本文时为 9.9.0 版。
npm install firebase-admin@latest