Включение CORS в облачных функциях для Firebase - Ioni c Angular Firebase Error - PullRequest
0 голосов
/ 01 мая 2020

Я пытаюсь получить массив постов из базы данных Firebase и показать их на моей странице фида, но я получаю сообщение об ошибке, что-то включает cors и еще много чего. Я новичок в Ioni c, Firebase и Angular, поэтому любая подробная помощь будет очень полезна

Это функции кода Firebase

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin'

const express = require('express');
const cors = require('cors');
const docs = express();
docs.use(cors({ origin: true }));


admin.initializeApp()

export const getFeed = functions.https.onRequest(async(req, res)=>{
    docs.get = await admin.firestore().collection('posts').limit(10).get()
    res.send(docs.docs.map((doc: { data: any; })=> doc.data))

}) 

Это код попытки вызвать сообщения в FeedPage

import { Component, OnInit } from '@angular/core';
import {AngularFireFunctions} from '@angular/fire/functions'


@Component({
  selector: 'app-feed',
  templateUrl: './feed.page.html',
  styleUrls: ['./feed.page.scss'],
})
export class FeedPage implements OnInit {

  constructor(private aff: AngularFireFunctions) { }

  ngOnInit() {

    const getFeed = this.aff.httpsCallable('getFeed')
    getFeed({}).subscribe(data=>{
        console.log(data)
    })

  }

}

Так что здесь я в основном просто console.log массив сообщений из firebase, который должен просто показать мне в консоли все сообщения и данные ive положи им Но вместо этого я получаю эту ошибку

Доступ к выборке в 'https://us-central1-mk-recepti-80ae5.cloudfunctions.net/getFeed' из источника 'http://localhost: 8100 ' был заблокирован CORS policy: Ответ на предварительный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». Если непрозрачный ответ отвечает вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS. zone-evergreen. js: 1042 POST https://us-central1-mk-recepti-80ae5.cloudfunctions.net/getFeed net :: ERR_FAILED (анонимный) @ zone-evergreen. js: 1042 (анонимный) @ index. cjs . js: 463 step @ tslib.es6. js: 100 (анонимный) @ tslib.es6. js: 81 (анонимный) @ tslib.es6. js: 74 ZoneAwarePromise @ zone-evergreen. js: 876 __awaiter @ tslib.es6. js: 70 pu sh .. / node_modules/@firebase/functions/dist/index.cjs.js.Service.postJSON @ index. cjs. js: 454 (анонимный) @ index. cjs. js: 528 step @ tslib.es6. js: 100 (анонимный) @ tslib.es6. js: 81 выполнено @ tslib.es6. js: 71 invoke @ zone-evergreen. js: 359 run @ zone-evergreen. js: 124 (анонимный) @ zone-evergreen. js: 855 invokeTask @ zone-evergreen. js: 391 runTask @ zone-evergreen. js: 168 dumpMicroTaskQueue @ zone-evergreen. js: 559 Promise.then (asyn c) scheduleMicroTask @ zone-evergreen. js: 542 scheduleTask @ zone-evergreen. js: 381 scheduleTask @ zone-evergreen. js: 211 scheduleMicroTask @ zone-e vergreen. js: 231 scheduleResolveOrReject @ zone-evergreen. js: 845 resolPromise @ zone-evergreen. js: 791 (анонимный) @ zone-evergreen. js: 707 webpackJsonpCallback @ bootstrap: 24 ( анонимный) @ firebase-functions. js: 1 zone-evergreen. js: 172 Uncaught Ошибка: внутренняя в новом HttpsErrorImpl (index. cjs. js: 58) в _errorForResponse (index. cjs. js: 153) в Сервисе. (index. cjs. js: 538) на шаге (tslib.es6. js: 100) в Object.next (tslib.es6. js: 81) при выполнении (tslib.es6 . js: 71) в ZoneDelegate.invoke (зона-вечнозеленая. js: 359) в Zone.run (зона-вечнозеленая. js: 124) в зоне-вечнозеленая. js: 855 в ZoneDelegate. invokeTask (зона-вечнозеленая. js: 391) EDIT: Проблема была решена в этом источнике благодаря Дугу Стивенсону

...