0

我知道Firebase的雲端功能還很新,但我試圖將一些客戶端代碼移入雲端,並且「註冊」過程看起來像是一個明顯的目標。在Firebase的雲端函數中調用sendPasswordResetEmail()

當前,註冊頁面要求輸入電子郵件地址,生成隨機密碼並致電createUserWithEmailAndPassword()。這可以正常工作,然後我希望將「重置密碼」電子郵件發送到剛剛使用的電子郵件地址,以確認電子郵件地址,併爲用戶提供設置其選擇的特定密碼的機會。我可以在客戶端代碼中做到這一點,但我想嘗試創建由onCreate()觸發的功能。

這一點工作正常,但我不知道如何從firebase函數環境中調用sendPasswordResetEmail()

這是迄今爲止代碼:

var functions = require('firebase-functions') 
const admin = require('firebase-admin') 
admin.initializeApp(functions.config().firebase) 

exports.createUserRec = functions.auth.user().onCreate(event => { 
    admin.auth().sendPasswordResetEmail(event.data.email) 
}) 

功能日誌說:

TypeError: admin.auth(...).sendPasswordResetEmail is not a function 

我假設auth()對象不是在客戶端發現了同樣的auth()對象SDK,這將工作:

import * as firebase from 'firebase/app' 
import 'firebase/database' 
import 'firebase/auth' 

var fbConfig = { 
    // All the required bits 
} 

firebase.initializeApp(fbConfig) 
. 
. 
. 
firebase.auth().sendPasswordResetEmail(emailAddress) 

I b匆匆搜索了firebase函數源代碼,我看不到任何明顯提及的sendPasswordResetEmail()函數,所以它可能不是直接可用的(但?)。除了將其重新放回客戶端代碼之外,還有其他方式可以觸發這一點嗎?

回答

2

OK,我想我終於找到了答案,我的具體問題 - 由auth()調用返回的2個對象是不一樣的,因爲在這裏可以看到:

我希望隨着時間的推移,這些API的2將略有收斂,但現在看來,你不能啓動從雲功能重置密碼。

相關問題