#javascript #node.js #google-cloud-functions #firebase-admin
#javascript #node.js #google-cloud-функции #firebase-администратор
Вопрос:
Я написал облачную функцию для администратора firebase. Это для сброса пароля пользователя. Он передает пользовательский UID и новый проход, но когда я запускаю функцию, она не только сбрасывает пароль этого пользователя, но и делает его паролем для каждого пользователя. Каждый отдельный пользователь в базе данных.
Вот код, который вызывает функцию:
resetForm.addEventListener('submit', (e) => {
e.preventDefault();
let newPass = resetForm['reset-password'].value;
const resetPasswordFunction = firebase.functions().httpsCallable('resetPassword');
resetPasswordFunction({docId: docId, newPass: newPass}).then(() => {
const modal = document.querySelector('#modal-reset');
M.Modal.getInstance(modal).close();
resetForm.reset();
});
});
и вот функция:
var functions = require('firebase-functions');
var admin = require("firebase-admin");
var serviceAccount = require("./troop-30-elections-web-app-firebase-adminsdk-obsmr-61cc4bb59e.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://troop-30-elections-web-app.firebaseio.com"
});
exports.resetPassword = functions.https.onCall((data) => {
return admin.auth().updateUser(data.docId, {
password: data.newPass
})
.then(() => {
return {"text": "User Password Successfully Updated"}; // this is what gets sent back to the app
});
});
Комментарии:
1. Что происходит при печати записи пользователя ( firebase.google.com/docs/auth/admin/manage-users#update_a_user ), видите ли вы UID записи, которую вы отправили на обновление, или другой (последний, который был обновлен)
2. Я понял это. Это исправлено.
3. Если вы не возражаете поделиться тем, что происходило, в качестве ответа на случай, если у кого-то другого возникнет аналогичная проблема, это было бы здорово