javascript - 当我尝试接收用户电子邮件的数据时,为什么我的 Firebase 云功能代码会引发错误
问题描述
我一直在学习如何使用 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”类型上不存在数据对象的错误消息。
错误消息(更新):“UserRecord”类型上不存在属性“数据”
解决方案
所以admin.auth().getUserByEmail返回一个包含非空UserRecord的 Promise 。
UserRecord
似乎没有方法data()
。如果要获取 this 的 JSON 表示UserRecord
,请使用:
const data = snapshot.toJSON()
如果您只需要访问电子邮件,请使用:
const data = snapshot.email
推荐阅读
- php - 禁用 WooCommerce 产品添加到购物车以获取特定的自定义分类术语元值
- javascript - 比较两个 JSON 并创建一个具有共同值的 json
- python - 在python中将函数输出链接到GUI
- wordpress - WordPress 更改域
- swift - 更新从后台线程更改 UI 的变量 - SWIFTUI
- azure-keyvault - SecretAttributes 对象中的“启用”属性有什么作用?
- reactjs - 在 react redux 中更新相同的状态两次
- arrays - React-Native:如何迭代数组数组?
- r - 使用 data.table 替换值并转换为数字
- php - 如何使用 Linkedin API 从公司页面获取帖子?(营销被拒绝)