Я пытался реализовать некоторые облачные функции, которые получают и отправляют данные из 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 для такого рода проблем, я также следил за документацией. все равно не могу решить.