Эмулятор Cloud Firestore не работает при использовании метода обслуживания firebase - PullRequest
0 голосов
/ 25 мая 2020

Я пытался реализовать некоторые облачные функции, которые получают и отправляют данные из Cloud Firestore (я использую почтальон). Я хочу протестировать их локально, но не могу запустить эмулятор Cloud Firestore.

Мой индекс. js файл

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

admin.initializeApp();
const app = express();

app.get("/posts", (req, res) => {
  admin
    .firestore()
    .collection("posts")
    .orderBy("createdAt", "desc")
    .get()
    .then((data) => {
      let posts = [];
      data.forEach((doc) => {
        posts.push({
          postId: doc.id,
          body: doc.data().body,
          userHandle: doc.data().userHandle,
          createdAt: doc.data().createdAt,
        });
      });
      return res.json(posts);
    })
    .catch((err) => console.log(err));
});

app.post("/post", (req, res) => {
  const newPost = {
    body: req.body.body,
    userHandle: req.body.userHandle,
    createdAt: new Date().toISOString(),
  };

  admin
    .firestore()
    .collection("posts")
    .add(newPost)
    .then((doc) => {
      res.json({ message: `document ${doc.id} created successfully` });
    })
    .catch((err) => {
      res.status(500).json({ error: "something went wrong" });
      console.log(err);
    });
});

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

Я могу получить данные, если я никогда не использую метод развертывания firebase с помощью почтальона. Результатом для метода развертывания firebase является ответ (статус: 200) [в почтальоне]

Однако, если я попробую firebase serve или firebase serve --only function. я получаю вот так ...

firebase serve

=== Serving from 'C:\Users\Yuvan M\Documents\Visual Studio Code\React\meme-zha\meeme-functions'...

!  Your requested "node" version "8" doesn't match your global version "12"
i  functions: Watching "C:\Users\Yuvan M\Documents\Visual Studio Code\React\meme-zha\meeme-functions\functions" for Cloud Functions...
+  functions[api]: http function initialized (http://localhost:5000/meeme-zha/us-central1/api)

в приведенном выше коде я не могу получить ответ, например

i functions : preparing emulate function.

, если я использую этот локальный адрес http://localhost: 5000 / meeme-zha / us-central1 / api , это дает мне такую ​​ошибку ...

!  functions: The Cloud Firestore emulator is not running, so calls to Firestore will affect production.
!  External network resource requested!

Я использую эмулятор firebase: start - не работает. Я пробовал все решения, опубликованные на inte rnet для такого рода проблем, я также следил за документацией. все равно не могу решить.

...