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つのオブジェクトは、ここで見られるように、同じではありません。

  • Client side SDK Auth object方法はsendPasswordResetEmail()
  • が含まれますServer side SDK Auth objectの方法は、私は時間がこれら2つのAPIを通過すると、わずかに収束していくことを望んだけど、今のところ、あなたがクラウド機能からパスワードのリセットを開始することができないようではない

を行います。

関連する問題