Ошибка типа: firebase.auth () не является функцией - PullRequest
0 голосов
/ 07 июня 2019

Я устанавливаю новый проект Firebase.В проекте я пытаюсь использовать firebase.auth () для создания нового пользователя с адресом электронной почты и паролем пользователя.Однако, когда я использую firebase serve и делаю почтовый запрос со ссылкой в ​​postman, я получаю сообщение об ошибке, в котором говорится, что firebase.auth не является функцией.

Я считаю, что есть вопросы по этой проблеме, однако я попробовал все решения, которые они предоставили, но ни одно из них не помогло мне.

Я попытался: - добавить требуемый firebase / auth - удалить модули узлов и переустановить firebase и функции firebase - импортировать firebase и функции в другом порядке - установить firebase и функции в другом порядке - создать новый проект и установить firebaseи функционирует с нуля

const firebase = require('firebase');
const config = {
    apiKey: "xxxxx,
    authDomain: "xx",
    databaseURL: "xxxx",
    projectId: "xxxx",
    storageBucket: "xxxx",
    messagingSenderId: "xxx",
    appId: "xxxxxx"
};

firebase.initializeApp(config);

const functions = require('firebase-functions');
const admin = require('firebase-admin');
const app = require('express')();

admin.initializeApp();

//Signup route

app.post('/signup', (req, res) => {
    const newUser = {
        email: req.body.email,
        password: req.body.password,
        confirmPassword: req.body.confirmPassword,
        handle: req.body.handle,
    }

    // TODO: validate data

    firebase.auth().createUserWithEmailAndPassword(newUser.email, newUser.password)
    .then(data => {
        return res.status(201).json({ message: `user ${data.user.uid} signed up successfully`})
    })
    .catch(err => {
        console.error(err);
        return res.status(500).json({error: err.code});
    });
});

Ожидаемые результаты: получить статус 201 на почтальоне и создать нового пользователя в firebase

Фактические результаты: TypeError: firebase.auth не является функцией.В консоли и почтальон.

Ответы [ 3 ]

0 голосов
/ 08 июня 2019

Вы должны понимать разницу Firebase JavaScript SDK и Firebase Admin SDK для узла .

Firebase JavaScript SDK предназначен для клиентской части.

Firebase Admin SDK предназначен для серверной части (как облачные функции).

Так что в вашем случае вы должны использовать admin.auth (). CreateUser () .

См:

0 голосов
/ 18 июля 2019

Мне удалось решить эту проблему, установив firebase и firebase-tools. Я изначально только установил firebase-tools. Попробуйте запустить npm i firebase, перезапустите сервер firebase serve и посмотрите, сохраняется ли проблема.

0 голосов
/ 07 июня 2019

Кажется, вы хотите создать экземпляр приложения, используя клиентский sdk вместо сервера.

Вам нужно использовать private key instead, чтобы перейти на консоль Firebase -> Project Overview ->Service accounts -> Generate new private key

затем после загрузки и включения ключа в свой проект:

const admin = require('firebase-admin')
const serviceAccount = require('your_firebase_key/path/goes/here')
admin.initializeApp({
   credential: admin.credential.cert(serviceAccount)
})

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...