firebase - 使用 Firebase 托管的 Firebase 消息未正确初始化
问题描述
我正在使用 Firebase 托管来提供 Web 应用程序。Firebase 通常在使用自动初始化时正确初始化。
<!DOCTYPE html>
<html>
<head>
<!-- Some stuff -->
</head>
<body>
<!-- Some stuff -->
</body>
<script src="/__/firebase/7.13.2/firebase-app.js"></script>
<script src="/__/firebase/7.13.2/firebase-auth.js"></script>
<script src="/__/firebase/7.13.2/firebase-messaging.js"></script>
<script src="/__/firebase/7.13.2/firebase-storage.js"></script>
<script src="/__/firebase/init.js"></script>
<script>
firebase.auth().signInAnonymously().catch(function(error) {
// Works fine
});
firebase.auth().onAuthStateChanged(function(user) {
// Works fine
});
</html>
因此,在上面的最小示例中,我可以使用身份验证和存储,但添加对消息传递的调用失败。
const messaging = firebase.messaging();
相关的错误消息是:
未捕获的 FirebaseError:消息:缺少应用程序配置值:“appId”(消息/缺少应用程序配置值)。
我理解错误消息,但对我来说奇怪的是,通常 Firebase SDK 在使用 Firebase Hosting 和调用时会正确初始化<script src="/__/firebase/init.js"></script>
。Firebase 消息传递 SDK 似乎并非如此。当我忽略此调用并自己初始化 Firebase 应用程序时firebase.initializeApp(firebaseConfig);
,Firebase 消息传递 SDK 会正确初始化并且我可以使用它。
我想避免自己初始化 Firebase 应用程序,因为我认为 Firebase 托管应该处理它。我是否缺少任何特定于使用 Firebase 消息传递 SDK 的步骤?我找不到任何以下https://firebase.google.com/docs/cloud-messaging/js/client。
解决方案
我发现,在您真正完成将网络应用程序添加到项目/__/firebase/init.js
的过程之前,我发现内容并不包含所有消息传递信息,尤其是第 2 步。仅将代码部署到 Firebase 托管是不够的。
推荐阅读
- c# - Microsoft.Net.Compilers 仅在 MSBuild v16.3 及更高版本上受支持
- java - 我遇到了 HTTP 和 HTTPS 协议问题
- tensorflow - tf.image.yuv_to_rgb 的正确用法是什么?输出失真
- javascript - 如何正确使用 ViewChild
- cmake - “重新运行 cmake 没有构建系统参数”是什么意思?
- c++ - 预期“(”之后?
- reactjs - 在输入字段中键入会为每个字符创建一个新组件
- operating-system - 操作系统 - 进程
- d3.js - 向 D3.JS 决策树路径添加标签
- python-3.x - 替换列中的值