Функция развертывания firebase — Приложение Firebase «[ПО УМОЛЧАНИЮ] » не создано.

# #node.js #firebase-authentication #google-cloud-functions

Вопрос:

Я пытался развернуть функцию firebase-cloud:

 const functions = require("firebase-functions");
const admin = require("firebase-admin");
const app = require("express")();
const { getAuth, createUserWithEmailAndPassword } = require("firebase/auth");
const auth = getAuth();
const firebase = require("firebase/app");

admin.initializeApp();

const config = {
  apiKey: "",
  authDomain: " ",
  projectId: " ",
  storageBucket: " ",
  messagingSenderId: " ",
  appId: " ",
  measurementId: " ",
};

firebase.initializeApp(config);
//Signup Route
app.post("/signup", (req, res) => {
  const newUser = {
    email: req.body.email,
    password: req.body.password,
  };
  createUserWithEmailAndPassword(auth, newUser.email, newUser.password)
    .then((data) => {
      return res
        .status(201)
        .json({ message: `user ${data.user.uuid} signed up successfully` });
    })
    .catch((err) => {
      console.error(err);
      return res.status(500).json({ error: err.code });
    });
});

exports.api = functions.https.onRequest(app);
 

Но я получил эту ошибку

Ошибка FirebaseError: Firebase: Приложение Firebase » [ПО УМОЛЧАНИЮ]» не создано — вызовите приложение Firebase. initializeApp() (приложение/без приложения).

Изображение Здесь

Ответ №1:

Похоже, вы пытаетесь импортировать JavaScript/веб-SDK на стороне клиента здесь:

 const { getAuth, createUserWithEmailAndPassword } = require("firebase/auth");
const auth = getAuth();
const firebase = require("firebase/app");
 

Этот SDK не поддерживается в облачных функциях. Вместо этого вам следует использовать SDK администратора для Node.ks, который вы уже импортируете вместе с:

 const admin = require("firebase-admin");
 

Чтобы создать пользователя с помощью SDK администратора:

 admin
  .auth()
  .createUser({
    email: 'user@example.com',
    emailVerified: false,
    phoneNumber: ' 11234567890',
    password: 'secretPassword',
    displayName: 'John Doe',
    photoURL: 'http://www.example.com/12345678/photo.png',
    disabled: false,
  })