Firebase - TypeError: admin.auth(...).createUserWithEmailAndPassword is not a function
Firebase - TypeError: admin.auth(...).createUserWithEmailAndPassword is not a function
我正在尝试使用云函数在 firebase 数据库中创建一个用户。这是我的代码:
exports.AddUser = functions.https.onRequest(function(req, res){
if(req.method == 'GET'){
email = req.query.email;
password = req.query.password;
name = req.query.name;
admin.auth().createUserWithEmailAndPassword(email, password).then(function(user){
user.sendEmailVerification().then(function(){
res.send("verification email sent.");
}).catch(function(){
res.end(user)
})
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorMessage);
res.send(errorMessage);
});
}else{
email = req.body.email;
password = req.body.password;
name = req.body.name;
admin.auth().createUserWithEmailAndPassword(email, password).then(function(user){
user.sendEmailVerification().then(function(){
res.send("verification email sent.");
}).catch(function(error){
res.end(user)
});
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorMessage);
res.send(errorMessage);
});
}
});
这是我的package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.12.0",
"firebase-functions": "^1.0.1"
},
"private": true
}
仅在我使用 admin.createUser()
时有效,但后来我无法使用 user.sendEmailVerification()
,因为出于某些原因,它仅在使用 admin.createUserWithEmailAndPassword()
.
创建用户时可用
这是我在 firebase 控制台中得到的:
TypeError: admin.auth(...).createUserWithEmailAndPassword is not a function
at /user_code/index.js:26:26
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:37:41)
at /var/tmp/worker/worker.js:684:7
at /var/tmp/worker/worker.js:668:9
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
我该怎么办?在这里,
const functions = require('firebase-functions');
const admin = require('firebase-admin');
我是 Firebase 和云函数的新手,所以很抱歉。
该消息告诉您您需要知道的一切。节点管理 SDK 中没有该名称的方法。
您可以在 admin.auth()
in the API docs.
上看到所有方法的列表
createUserWithEmailAndPassword 仅存在 in the client SDK。
你只需要使用 auth().createUser 而不是 createUserWithEmailAndPassword
admin.auth().createUser({
email: 'user@example.com',
emailVerified: false,
phoneNumber: '+11234567890',
password: 'secretPassword',
displayName: 'John Doe',
photoURL: 'http://www.example.com/12345678/photo.png',
disabled: false
})
.then(function(userRecord) {
// See the UserRecord reference doc for the contents of userRecord.
console.log('Successfully created new user:', userRecord.uid);
})
.catch(function(error) {
console.log('Error creating new user:', error);
});
看看这个:https://firebase.google.com/docs/auth/admin/manage-users#create_a_user
我正在尝试使用云函数在 firebase 数据库中创建一个用户。这是我的代码:
exports.AddUser = functions.https.onRequest(function(req, res){
if(req.method == 'GET'){
email = req.query.email;
password = req.query.password;
name = req.query.name;
admin.auth().createUserWithEmailAndPassword(email, password).then(function(user){
user.sendEmailVerification().then(function(){
res.send("verification email sent.");
}).catch(function(){
res.end(user)
})
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorMessage);
res.send(errorMessage);
});
}else{
email = req.body.email;
password = req.body.password;
name = req.body.name;
admin.auth().createUserWithEmailAndPassword(email, password).then(function(user){
user.sendEmailVerification().then(function(){
res.send("verification email sent.");
}).catch(function(error){
res.end(user)
});
})
.catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
console.log(errorMessage);
res.send(errorMessage);
});
}
});
这是我的package.json:
{
"name": "functions",
"description": "Cloud Functions for Firebase",
"scripts": {
"serve": "firebase serve --only functions",
"shell": "firebase functions:shell",
"start": "npm run shell",
"deploy": "firebase deploy --only functions",
"logs": "firebase functions:log"
},
"dependencies": {
"firebase-admin": "~5.12.0",
"firebase-functions": "^1.0.1"
},
"private": true
}
仅在我使用 admin.createUser()
时有效,但后来我无法使用 user.sendEmailVerification()
,因为出于某些原因,它仅在使用 admin.createUserWithEmailAndPassword()
.
这是我在 firebase 控制台中得到的:
TypeError: admin.auth(...).createUserWithEmailAndPassword is not a function
at /user_code/index.js:26:26
at cloudFunction (/user_code/node_modules/firebase-functions/lib/providers/https.js:37:41)
at /var/tmp/worker/worker.js:684:7
at /var/tmp/worker/worker.js:668:9
at _combinedTickCallback (internal/process/next_tick.js:73:7)
at process._tickDomainCallback (internal/process/next_tick.js:128:9)
我该怎么办?在这里,
const functions = require('firebase-functions');
const admin = require('firebase-admin');
我是 Firebase 和云函数的新手,所以很抱歉。
该消息告诉您您需要知道的一切。节点管理 SDK 中没有该名称的方法。
您可以在 admin.auth()
in the API docs.
createUserWithEmailAndPassword 仅存在 in the client SDK。
你只需要使用 auth().createUser 而不是 createUserWithEmailAndPassword
admin.auth().createUser({
email: 'user@example.com',
emailVerified: false,
phoneNumber: '+11234567890',
password: 'secretPassword',
displayName: 'John Doe',
photoURL: 'http://www.example.com/12345678/photo.png',
disabled: false
})
.then(function(userRecord) {
// See the UserRecord reference doc for the contents of userRecord.
console.log('Successfully created new user:', userRecord.uid);
})
.catch(function(error) {
console.log('Error creating new user:', error);
});
看看这个:https://firebase.google.com/docs/auth/admin/manage-users#create_a_user