Я создаю пользователей, используя admin SDK, и хочу, чтобы они могли войти в систему с помощью электронной почты и пароля. По какой-то причине, когда я создаю пользователей через клиента, используя только электронную почту и пароль, пользователь может войти в систему, используя эти учетные данные, но когда я создаю пользователя с помощью admin SDK, пользователь отображается как анонимный в панели управления auth, и пользователь может не войдите, используя свой адрес электронной почты и пароль. Ошибки не отображаются на стороне клиента или на стороне Firebase.
Как создать пользователя Firebase с помощью admin SDK и связать этого пользователя с аутентификацией электронной почты?
Узел:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
exports.createUser = functions.https.onRequest(async (req, res) => {
//grab the email and password parameters
await admin.auth().createUser({
email: req.query.email,
password: req.query.password
})
//create the user
.then(function(userRecord) {
const child = userRecord.uid;
console.log('Successfully created new user:', userRecord.uid);
res.json({
status: 201,
data: {
"message": userRecord.uid
}
});
})
//handle errors
.catch(function(error) {
console.log();
res.json({
status: 500,
data: {
"error": 'error creating user: ', error
}
});
});
});
Swift:
func createChild(for parent: Parent,
with firstName: String,
lastName: String,
displayName: String?,
chores: [Chore]?,
username: String,
password: String,
completion: @escaping () -> Void = { }) {
let funcCallDict = [
"email": username,
"password": password
]
functions.httpsCallable(addChildIdentifier).call(funcCallDict) { (result, error) in
if let error = error {
NSLog("error: adding child with firebase function: \(error)")
completion()
return
}
}
completion()
}