Почему мой код функции облака Firebase выдает ошибку, когда я пытаюсь получить данные для пользователей по электронной почте - PullRequest
0 голосов
/ 24 апреля 2019

Я изучал, как работать с облачными функциями 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'

1 Ответ

2 голосов
/ 24 апреля 2019

Итак admin.auth (). GetUserByEmail возвращает Promise, содержащий ненулевое значение UserRecord .

UserRecord не имеет метода data(). Если вы хотите получить JSON-представление этого UserRecord, используйте:

const data = snapshot.toJSON()

Если вам нужен только доступ к электронной почте, используйте:

const data = snapshot.email

...