运行npm run dev
registerFunctions(firebase$1, fetch.bind(self));
^
ReferenceError: fetch is not defined
我想rxfire没有导入fetch,所以我将这一行添加到src/server.ts
global['fetch'] = require('node-fetch');
错误仍然存在,有什么建议吗?我想我根本不需要添加这个。
我只是使用rxfiresrc/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
这是在我的firebase.ts中尝试在服务器端import "firebase/functions"
时导致的特定错误。文件。
我能够通过将import 'isomorphic-unfetch'
添加到server.ts来解决它。然而,然后我得到了这个错误:
registerFunctions(firebase$1, fetch.bind(self));
^
ReferenceError: self is not defined
我意识到显然没有对象绑定到后端,所以我找到了一个工作。我不需要在后端导入它,这是一个更大的Sapper Firebase问题。
看到我的帖子在这里完整的修复。
我也遇到过类似的问题。
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)
我通过将firebase导入更新到
来解决这个问题。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;
}
索引上的。Svelte/_layout.svelte
<script context="module">
import "./define-self";
import "whatwg-fetch";
</script>