亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

重置用戶密碼的云函數不起作用

重置用戶密碼的云函數不起作用

HUH函數 2023-11-12 22:28:51
我正在開發一個 Web 應用程序,該應用程序的部分功能是具有管理員登錄名并能夠重置用戶的密碼。我正在使用 firebase 云函數。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).then(() => {            const modal = document.querySelector('#modal-reset');          M.Modal.getInstance(modal).close();          resetForm.reset();        })        console.log("Step 1.5");    });.var functions = require('firebase-functions');var admin = require("firebase-admin");var serviceAccount = require("./troop-30-elections-web-app-firebase-adminsdk-obsmr-6913a9dca3.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,    });});我通過填寫表格對其進行了測試,但沒有任何反應。我在控制臺中查看,沒有錯誤,但我看到了步驟 1 和步驟 1.5。
查看完整描述

2 回答

?
白衣染霜花

TA貢獻1796條經驗 獲得超10個贊

對于可調用類型函數,必須返回一個 promise,該 promise 生成要發送回調用它的客戶端應用的對象值。只有當所有異步工作完成時,該承諾才必須解析,否則函數將在工作完成之前關閉。

現在,您的函數不返回任何內容,并且忽略了?updateUser()?返回的 promise。Cloud Functions 在工作完成之前終止該函數:承諾被忽略。您的代碼應改用該 promise 并將結果發送回客戶端。這將發送一個空對象,但您可以在其中執行任何您想要的事情:

????return?admin.auth().updateUser(docId,?{?password:?newPass?})
????.then(()?=>?{?
???????????return?{};??//?this?is?what?gets?sent?back?to?the?app
????});


查看完整回答
反對 回復 2023-11-12
?
蕭十郎

TA貢獻1815條經驗 獲得超13個贊

我做了更多的研究并編輯了我的代碼。這工作原理:


resetForm.addEventListener('submit', (e) => {

        console.log("Step 1");

        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();

        });

        console.log("Step 1.5");

    });

.


var functions = require('firebase-functions');

var admin = require("firebase-admin");

var serviceAccount = require("./troop-30-elections-web-app-firebase-adminsdk-obsmr-6913a9dca3.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

  });

});


查看完整回答
反對 回復 2023-11-12
  • 2 回答
  • 0 關注
  • 212 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號