Я новичок в Firebase и хочу использовать их функции облака HTTP.Когда я пытаюсь перейти на любую конечную точку (не используя эмулятор - например, https://us -central1-xxxxxxxx.cloudfunctions.net / app / api / admin / studio ), я получаю ошибки CORS.
Вот пример моего кода.У меня нет установленных правил безопасности (все еще в разработке).Приведенный ниже код прекрасно работает при использовании эмулятора firebase.Просто не используйте "живую" ссылку .cloudfunctions.
Есть ли разрешение или настройка, по которой я скучаю?Эта конечная точка работает, если вы обращаетесь к ней напрямую через браузер или POSTMAN, но не из приложения реагирования.
Пример ошибки из приложения реагирования:
Origin https://xxxxxxxxxxx is not allowed by Access-Control-Allow-Origin.
Fetch API cannot load https://us-central1-xxxxxxxx.cloudfunctions.net/app/api/admin/studio due to access control checks.
index.js
const functions = require("firebase-functions")
const express = require("express")
const app = express()
const cors = require("cors")({ origin: true })
app.use(cors)
const studio = require("./http/studio.js")
app.post("/api/admin/studio", studio.add)
exports.app = functions.https.onRequest(app)
db.js
const admin = require("firebase-admin")
admin.initializeApp()
module.exports = admin.firestore()
http / studio.js
const db = require("../db")
const error = require("./error")
exports.add = (req, res) => {
const { data } = req.body
if (!data) {
return error.no_data(res)
}
return db
.collection("data")
.doc("studio")
.update({ values: admin.firestore.FieldValue.arrayUnion(data) })
.then(res.status(200).send("Data updated successfully"))
.catch(err => error.updating(res, err))
}