当我尝试接收用户电子邮件的数据时,为什么我的 Firebase 云函数代码会抛出错误

Why is my Firebase cloud function code throwing an error when I try and receive data for users email

我一直在学习如何使用 firebase 云功能,并慢慢了解 HTTPS 请求的工作原理,但是我一直在为用户电子邮件检索数据。

我想检查他们在应用程序中输入的特定电子邮件是否已在我的 firebase 项目中使用,我打算在客户端执行此操作,但了解到如果我通过云功能执行此操作会更安全.

import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'
import { response } from 'express';
admin.initializeApp()

export const getEmail = functions.https.onRequest((request, response) => {
    admin.auth().getUserByEmail(email)
    .then(snapshot => {
        const data = snapshot.data()
        response.send(data)
    })
    .catch(error => {
        //Handle error
        console.log(error)
        response.status(500).send(error)
    })
})

我不断收到错误消息,指出类型 'userRecord' 上不存在数据对象。

错误消息(更新):属性 'data' 在类型 'UserRecord'

上不存在

所以admin.auth().getUserByEmail returns a Promise containing non-null UserRecord.

UserRecord 似乎没有方法 data()。如果你想得到这个 UserRecord 的 JSON 表示,使用:

const data = snapshot.toJSON()

如果您只需要访问电子邮件,请使用:

const data = snapshot.email