【问题标题】:Firebase initialization gives app/duplicate-app errorFirebase 初始化给出了应用程序/重复应用程序错误
【发布时间】:2018-01-25 16:04:55
【问题描述】:

对于我的博客,我允许用户输入他们的电子邮件,然后将所述电子邮件添加到 firebase 数据库,这样我就可以在我发布新帖子时向订阅者发送大量电子邮件。我在我的机器上测试了我的代码,它工作得很好。

首先,我添加了 firebase <script> 标签,然后添加了我自己的脚本标签,该标签链接到顶部包含以下内容的文件:

var config = {
    apiKey: "...",
    authDomain: "...",
    databaseURL: "...",
    projectId: "...",
    storageBucket: "...",
    messagingSenderId: "..."
};

firebase.initializeApp(config);

这在我的机器上运行良好,但我将文件推送到托管我的博客的 GitHub,当我运行 firebase.initializeApp(config) 时,它不再工作了。它给了我一个错误,Firebase: Firebase App named '[DEFAULT]' already exists (app/duplicate-app)。我不知道如何解决这个问题。我已经尝试给firebase.initializeApp() 提供第二个参数,这将是一个随机生成的ID,保存在cookie 中,但这也不起作用;我遇到了同样的错误。

这一切都在前端完成,因为 GitHub Pages 不支持后端。非常感谢任何帮助。

【问题讨论】:

    标签: javascript firebase firebase-realtime-database


    【解决方案1】:

    该错误消息意味着页面上的某些内容在生成该错误的调用之前已经调用了firebase.initializeApp()。我们这里没有人可以看到您的整个站点以了解是否以及如何发生这种情况,您将不得不开始挖掘站点的组件来调试它。甚至可能在 initializeApp() 中设置一个调试器断点来捕获它第一次被调用的时间,并检查堆栈以查看它的位置。

    如果有其他组件正在初始化 Firebase 的默认实例,并且该组件对页面来说是合法的,您可以通过给它一个名称来初始化一个非默认实例(传递 initializeApp() 的第二个参数)来解决这个问题),持有它的引用,并传递它以获取数据库、身份验证、存储等的替代实例。

    【讨论】:

    • 实际上只有一个 JavaScript 文件,它在它的顶部,它仍然抛出错误......
    • 嗯,你试过我建议的调试吗?这个错误绝对是我所说的意思。
    • 听起来是时候谷歌搜索一下教程了。
    • javascript调试如何[插入您的浏览器名称]?
    • 我的意思是这里没有足够的信息来诊断出了什么问题。任何人都可以告诉您的是该消息的含义以及您可以做些什么来处理它。如果您愿意在一段时间内与支持代理来回走动,您可以提出支持问题,但该过程可能不会很快。 firebase.google.com/support/contact/troubleshooting
    【解决方案2】:

    我不确定为什么它给了我一个duplicate-app 错误,但事实证明我忘记了firebase.signInAnonymously()。在initializeApp() 之后但在onAuthStateChange 之前添加该行可以解决问题。我觉得自己像个傻瓜,但我想我会把答案放在这里并发布,以防其他同样心不在焉的人犯同样的错误。 :P

    【讨论】:

      猜你喜欢
      • 2017-04-29
      • 1970-01-01
      • 1970-01-01
      • 2021-08-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 2018-04-08
      相关资源
      最近更新 更多