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

时间:2019-04-24 16:21:55

标签: javascript swift firebase google-cloud-functions firebase-admin

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

我想检查他们在应用程序中输入的特定电子邮件是否已经在我的Firebase项目中接收过,我打算在客户端执行此操作,但了解到如果通过云功能进行操作,它的安全性更高。< / p>

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'类型的数据对象不存在。

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

1 个答案:

答案 0 :(得分:2)

因此admin.auth().getUserByEmail返回一个包含非空UserRecord的Promise。

UserRecord似乎没有方法data()。如果要获取此UserRecord的JSON表示,请使用:

const data = snapshot.toJSON()

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

const data = snapshot.email