【问题标题】:Firebase messaging with Firebase hosting does not get initialized properly [duplicate]使用 Firebase 托管的 Firebase 消息未正确初始化 [重复]
【发布时间】:2020-04-10 12:05:45
【问题描述】:

我正在使用 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();

相关的错误信息是:

Uncaught FirebaseError: Messaging: Missing App configuration value: "appId" (messaging/missing-app-config-values)。

我理解错误消息,但对我来说奇怪的是,通常在使用 Firebase 托管并调用 &lt;script src="/__/firebase/init.js"&gt;&lt;/script&gt; 时,Firebase SDK 会正确初始化。 Firebase 消息传递 SDK 似乎并非如此。当我忽略此调用并使用 firebase.initializeApp(firebaseConfig); 自己初始化 Firebase 应用程序时,Firebase 消息传递 SDK 会正确初始化并且我可以使用它。

我想避免自己初始化 Firebase 应用程序,因为我认为 Firebase 托管应该处理它。我是否缺少任何特定于使用 Firebase 消息传递 SDK 的步骤?我找不到任何关注https://firebase.google.com/docs/cloud-messaging/js/client。

【问题讨论】:

  • 您需要将/__/firebase/init.js 的内容与您自己的firebaseConfig 进行比较,但很可能前者缺少像messagingSenderId 这样的值。如果确实如此,我会reach out to Firebase support 看看他们是否知道这是故意的还是可能是一个错误。
  • @FrankvanPuffelen 我认为他们只是没有将他们的网络应用程序添加到项目中。

标签: firebase firebase-cloud-messaging firebase-hosting


【解决方案1】:

我发现/__/firebase/init.js 的内容并不包含所有消息传递信息,直到您真正完成了adding a web app to your project 的过程,尤其是第2 步。仅将代码部署到Firebase 托管是不够的。

【讨论】:

  • 我确实做到了。在 localhost 上运行时,/__/firebase/init.js 似乎缺少 appId。我刚刚通过 Firebase 托管提供的 url 部署并调用了我的 web 应用程序,其中包含了 appId。看起来我需要区分 Web 应用程序的运行位置。
猜你喜欢
  • 2022-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 2020-04-18
  • 2021-06-22
  • 2022-10-16
相关资源
最近更新 更多