[英]How to get different user in firebase auth
我正在開發一個應用程序,該應用程序的部分功能是管理員能夠登錄和重置其他用戶的密碼。 如何獲取當前登錄用戶以外的用戶?
resetForm.addEventListener('submit', (e) => {
e.preventDefault();
let newPass = resetForm['reset-password'].value;
let firebaseUser = auth.user(docId);
console.log(firebaseUser);
});
我知道該代碼實際上不會重置任何密碼,我只是寫了該代碼以查看是否可以獲取已登錄的用戶以外的用戶。我運行了它,但沒有在控制台中看到用戶 UID,而是看到了這個:
未捕獲的類型錯誤:auth.user 不是 function
編輯:我創建了一個雲 function。 這是我的 index.js 文件的代碼:
var functions = require('firebase-functions');
var admin = require("firebase-admin");
var serviceAccount = require("/removed-for-privacy.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://troop-30-elections-web-app.firebaseio.com"
});
exports.resetPassword = functions.https.onCall((docId,newPass) => {
console.log("step 2");
admin.auth().updateUser(docId, {
password: newPass,
}).then(() => {
const modal = document.querySelector('#modal-reset');
M.Modal.getInstance(modal).close();
resetForm.reset();
});
});
這是按下按鈕時運行的代碼:
resetForm.addEventListener('submit', (e) => {
console.log("Step 1");
e.preventDefault();
let newPass = resetForm['reset-password'].value;
const resetPasswordFunction = firebase.functions().httpsCallable('resetPassword');
resetPasswordFunction(docId,newPass);
console.log("Step 1.5");
});
當我打開控制台時,沒有錯誤消息。 我看到了第 1 步和第 1.5 步。 沒有其他的。
在 Firebase Authentication 中無法識別應用程序管理員。 為此,您必須構建自己的基礎架構。
通常這意味着:
不過,您在這里完全靠自己,因為您不能使用 Firebase 的內置密碼重置機制。 這僅對客戶端上的登錄用戶可用,以防止它被濫用給垃圾郵件用戶。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.