【发布时间】:2021-08-19 11:18:15
【问题描述】:
我目前正在尝试使用“expo-notifications”中的 Notifications 包设置推送通知,我只是收到以下错误,我无法解决它:
[错误:调用本机方法时遇到异常:在模块 ExpoPushTokenManager 上执行导出方法 getDevicePushTokenAsync 时发生异常:默认 FirebaseApp 未在此进程 com 中初始化。------。确保首先调用 FirebaseApp.initializeApp(Context)。]
问题是,这条消息完全激怒了我,因为我确实打电话:
import * as firebase from "firebase";
然后:
firebase.initializeApp(ApiKeys);
在我的应用程序开始时。
我现在是否需要安装 Firebase/App 软件包才能执行FirebaseApp.initializeApp()?那我需要初始化我的应用程序 2 次吗?
expo 的文档都没有提到这样的错误,我也没有在 firebase 文档中找到与此错误相关的任何内容,我真的很努力解决这个问题。
【问题讨论】:
-
你应该只需要初始化一次。但是,似乎无论在哪里执行
getDevicePushTokenAsync,它都会在您调用initializeApp之前被调用,或者它正在使用FirebaseApp的不同实例(例如,使用自定义名称)。您需要调查为什么会出现这种情况,特别注意您的导入顺序。有些文件可能会在你的主文件之前被导入和执行。 -
我的意思是我通过我的应用程序使用一个帐户登录到 firebase,并从数据库中检索信息,这发生在我的
initializeApp()调用之后,这让我很难找到错误.如果我的应用无法初始化,我如何能够在我的应用中使用我的 firebase 帐户登录并与服务器通信? -
没关系,我解决了,把这个问题的答案放在这里。我仍然喜欢你的回答,它让我更好地理解了我的代码。
标签: javascript firebase react-native expo