Firebase Firestore Web v9 初始化。

3

我开始将我的firstore项目迁移到web v9。使用来自以下链接的步骤:https://firebase.google.com/docs/web/setup?sdk_version=v9#add-sdks-initialize

  <script src="https://www.gstatic.com/firebasejs/9.0.0-beta.2/firebase-app-compat.js"></script>
  <script src="https://www.gstatic.com/firebasejs/9.0.0-beta.2/firebase-analytics-compat.js"></script>
  <script src="https://www.gstatic.com/firebasejs/9.0.0-beta.2/firebase-auth-compat.js"></script>
  <script src="https://www.gstatic.com/firebasejs/9.0.0-beta.2/firebase-firestore-compat.js"></script>
  <script>
    
    import firebase from "firebase/compat/app";
    //const firebase = require('firebase/compat/app');

    var firebaseConfig = {
      apiKey: "zaSy...opjQ6GQ3",
      authDomain: "...firebaseapp.com",
      projectId: "...",
      storageBucket: "...appspot.com",
      messagingSenderId: "..049",
      appId: "1:645243..9a",
      measurementId: "..Q3Y.."
    };
    // Initialize Firebase
    firebase.initializeApp(firebaseConfig);
    firebase.analytics();
  </script>

1?. 错误 "Uncaught SyntaxError: Cannot use import statement outside a module"(未捕获的语法错误:无法在模块外部使用导入语句)

2?. 模块化的CDN在哪里 - 我不想使用兼容SDK。

3?. 在此页面上,有关于Firebase JS SDK可用性的信息(从CDN获取),但它看起来是针对v8版本的 - v9版本在哪里?

请问有示例代码吗?

1个回答

4

我在文档的CDN部分和Github上都没有看到提到模块化SDK。第一个错误比较常见,因为你不在一个节点环境中。你可以在这里了解更多信息。

你导入的脚本中还有“compat”,这意味着:

Compat - 与版本8 SDK完全兼容的熟悉API界面,允许您一次性升级到版本9,而无需更改所有Firebase代码。Compat库与其版本8的对应物相比,几乎没有大小或性能优势。

要继续使用Firebase v9 beta(通过CDN),请继续使用v8的代码风格。

// No need to 'import {}' anything
// Just add the scripts

firebase.initializeApp({...})

我不确定为什么文档中提到了import {} from "firebase/compat/app",但我认为这只是从文档的NPM标签中重复获取。

我尝试查看它(包括简单的HTML和Vue应用程序),并获得了相同的结果: enter image description here

所以我想,如果你对v9非常感兴趣,你可能需要使用NPM。(不确定Browserify会有多大帮助)


非常感谢。我计划将我的应用程序更新到9,但看起来他们甚至还没有开始:)。例如如何使用此代码:import { getAuth,createUserWithEmailAndPassword } from“firebase / auth”; const auth = getAuth(); createUserWithEmailAndPassword(auth,email,password) - awariat
2
@awariat 我在Vue应用程序中使用过它。所以,除非您使用框架并使用npm或yarn安装它,否则很难。另外,如果这个答案有帮助,请接受/点赞,否则请随时提出进一步的问题。 - Dharmaraj
2
参考:https://github.com/firebase/snippets-web/issues/192#issuecomment-872204103 - Dharmaraj
@Dharmaraj,你知道现在有没有关于如何使用CDN的好文档吗? - Leo
1
@Leo 从v9开始,你应该使用构建工具编译你的代码以最小化其占用空间,而不是使用CDN。CDN的主要好处是越多的网站使用它,使用Firebase的开销就越小。现在SDK可以进行树摇优化以最小化占用空间,因此CDN变得不那么有用了。我建议你使用CDN加载器脚本学习新的SDK,但是在实际应用中使用构建工具。 - samthecodingman
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接