2017-11-10 6 views
0

私はFirebase admin authを使用して、クラウド機能経由で電話番号でユーザを取得しようとしています。ここでは、クラウド機能(一部のリクエストボディ検証を除いたもの)があります。getUserByPhoneNumberは常に要求エラーを返します

module.exports = (req, res) => { 
    const phone = req.body.phone; 

    admin.auth().getUserByPhoneNumber(phone).then(userRecord => { 
    res.send({ user: userRecord }); 
    }) 
    .catch(getUserErr => { 
    res.status(422).send({ error: getUserErr }); 
    }); 
}; 

電話機はE.164に準拠しています。応答で次のエラーが表示されます。

Error: could not handle the request 

重要な情報がいくつかあります。私はこれを雲の関数から呼び出しています。また、私は現在、電話番号を使用して匿名ユーザーを作成しています(別のクラウド機能を使用)。電話のサインインプロバイダを使用していません。

admin.auth().createUser({ 
    phoneNumber: phone 
}) 

(匿名サインインプロバイダに加えて)電話の認証プロバイダをオンにしようとしましたが、それは問題には見えません。

誰でもこの原因がわかりますか?ドキュメントは、他の設定が必要な場合はサイレントにします。

+0

あなたの機能の完全な実装を共有できますか?または少なくとも上記のメソッドを呼び出す部分? –

+0

完全な機能を含むように編集された質問。関数がレコードを見つけられなかった場合、getUserとgetUserByEmailと同じことを行い、次のようなエラーを返します:{ "error":{ "code": "auth/user-not-found"、 "message": "提供された識別子に対応するユーザレコードがありません。" } } – Paul

+1

はい。これは実際にはadmin SDKによって生成されたエラーではありません。他の何かがここで失敗している。これをデバッグするのに役立つアイデアについては、https://stackoverflow.com/questions/45600367/cloud-functions-for-firebase-error-could-not-handle-the-requestを参照してください。 –

答えて

0

firebase-adminパッケージを更新してください。 getUserByPhoneNumberはバージョンv5.1.0まで利用できません

関連する問題