首页 > 解决方案 > ReferenceError: self 在设置 Firebase 时未定义

问题描述

我尝试设置 Firebase 以在 Web [Javascript]上使用云消息传递,但我收到如下错误:

I20210208-15:21:52.756(7)? Exception while invoking method '/microfis_loanRequest/update' ReferenceError: self is not defined
I20210208-15:21:52.758(7)?     at isSupported (/Users/rabbit/Desktop/microfis/node_modules/@firebase/messaging/dist/index.cjs.js:1711:9)
I20210208-15:21:52.758(7)?     at Component.factoryMethod [as instanceFactory] (/Users/rabbit/Desktop/microfis/node_modules/@firebase/messaging/dist/index.cjs.js:1694:10)
I20210208-15:21:52.758(7)?     at Provider.getOrInitializeService (/Users/rabbit/Desktop/microfis/node_modules/@firebase/component/dist/index.cjs.js:222:39)
I20210208-15:21:52.759(7)?     at Provider.getImmediate (/Users/rabbit/Desktop/microfis/node_modules/@firebase/component/dist/index.cjs.js:120:33)
I20210208-15:21:52.759(7)?     at FirebaseAppImpl._getService (/Users/rabbit/Desktop/microfis/node_modules/@firebase/app/dist/index.node.cjs.js:230:49)
I20210208-15:21:52.760(7)?     at FirebaseAppImpl.firebaseAppImpl.(anonymous function) [as messaging] (/Users/rabbit/Desktop/microfis/node_modules/@firebase/app/dist/index.node.cjs.js:449:39)
I20210208-15:21:52.761(7)?     at Object.serviceNamespace [as messaging] (/Users/rabbit/Desktop/microfis/node_modules/@firebase/app/dist/index.node.cjs.js:429:45)
I20210208-15:21:52.761(7)?     at Object.<anonymous> (microfis/server/collection_hooks/mobile-app-hook/loan-request.js:53:30)
I20210208-15:21:52.762(7)?     at packages/matb33_collection-hooks.js:486:20
I20210208-15:21:52.762(7)?     at Array.forEach (native)

这是我为设置所做的

import firebase from 'firebase/app';
import 'firebase/messaging';

var firebaseConfig = {
    apiKey: "API_KEY",
    authDomain: "AUTH_DOMAIN.firebaseapp.com",
    projectId: "PROJECT_ID",
    storageBucket: "STORAGE_BUCKET.appspot.com",
    messagingSenderId: "SENDER_ID",
    appId: "APP_ID",
    measurementId: "MEASUREMENT_ID"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);

const messaging = firebase.messaging();

在这里我尝试使用它:

    messaging.getToken({ vapidKey: 'VAPID_KEY' }).then((currentToken) => {
        if (currentToken) {
            // Send the token to your server and update the UI if necessary
            // ...
            print(currentToken);
        } else {
            // Show permission request UI
            console.log('No registration token available. Request permission to generate one.');
            // ...
        }
    }).catch((err) => {
        console.log('An error occurred while retrieving token. ', err);
        // ...
    });

对此错误有任何想法,在此先感谢

标签: javascriptnode.jsfirebaseflutterfirebase-cloud-messaging

解决方案


确保导入 Firebase SDK 脚本并在index.html. 说明在这里


推荐阅读