сапер с firebase - выборка не определена
Я получаю эту ошибку при запуске
npm run dev
registerFunctions(firebase$1, fetch.bind(self));
^
ReferenceError: fetch is not defined
Я подумал, что rxfire не импортирует выборку, поэтому я добавляю эту строку в src / server.ts
global['fetch'] = require('node-fetch');
И ошибка все еще есть, есть предложения? Думаю, мне вообще не пришлось бы этого добавлять.
Я просто использую rxfire в файле src / firebase.ts вот так:
import firebase from "firebase/app";
import "firebase/auth";
import "firebase/firestore";
import "firebase/functions";
import * as config from "./config.json";
firebase.initializeApp(config);
export const auth = firebase.auth();
export const googleProvider = new firebase.auth.GoogleAuthProvider();
export const db = firebase.firestore();
export const functions = firebase.functions();
Спасибо,
J
3 ответа
Это была конкретная ошибка, вызванная попыткой
import "firebase/functions"
на стороне сервера в моем файле firebase.ts .
Я смог решить это, добавив
import 'isomorphic-unfetch'
на server.ts . Однако затем я получил эту ошибку:
registerFunctions(firebase$1, fetch.bind(self));
^
ReferenceError: self is not defined
Я понял, что, по-видимому, нет объекта для привязки на бэкэнде, поэтому я нашел работу. Мне нужно было не импортировать его на серверную часть, что было более серьезной проблемой Sapper Firebase.
Смотрите мой пост здесь для полного исправления.
I had similar issue with this error stacktrace :
ReferenceError: fetch is not defined
at Module.<anonymous> (/var/task/webpack:/Users/dev/projects/node_modules/@firebase/functions/dist/index.esm.js:702:27)
at __webpack_require__ (/var/task/webpack:/webpack/bootstrap:19:1)
at /var/task/webpack:/webpack/bootstrap:83:1
at Object.<anonymous> (/var/task/families.js:87:10)
at Module._compile (internal/modules/cjs/loader.js:1072:14)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
at Module.load (internal/modules/cjs/loader.js:937:32)
at Function.Module._load (internal/modules/cjs/loader.js:778:12)
at Module.require (internal/modules/cjs/loader.js:961:19)
at Module._require.i.require (/var/task/serverless_sdk/index.js:9:73397)
I solve it by updating the firebase import to
import * as admin from 'firebase-admin';
import firebase from 'firebase/app';
первая установка
whatwg-fetch
.
npm i --save whatwg-fetch
yarn add --save whatwg-fetch
pnpm i --save whatwg-fetch
создать файл
./define-self.js
с этим содержанием
var global =
(typeof globalThis !== "undefined" && globalThis) ||
(typeof self !== "undefined" && self) ||
(typeof global !== "undefined" && global);
if (!global?.self) {
global.self = global;
}
на вашем index.svelte/_layout.svelte
<script context="module">
import "./define-self";
import "whatwg-fetch";
</script>