我一直在学习如何使用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'
答案 0 :(得分:2)
因此admin.auth().getUserByEmail返回一个包含非空UserRecord的Promise。
UserRecord
似乎没有方法data()
。如果要获取此UserRecord
的JSON表示,请使用:
const data = snapshot.toJSON()
如果您只需要访问电子邮件,请使用:
const data = snapshot.email