首页 > 解决方案 > 使用 Sapper 设置 Firestore

问题描述

我正在尝试找出使用sapper设置 firestore 的最佳方法。我特别问的是工兵(不是苗条)。

关于这个主题的教程很少,我看到的那些我不确定。它们涉及修改 template.html 文件——我不确定这是否是个好主意。

所以,简而言之,我想知道在将 Firestore 与 sapper 同步方面的最佳实践是什么。

有任何想法吗?

谢谢。

标签: google-cloud-firestoresveltesappersvelte-3

解决方案


有多种方法可以使用 Firestore 设置 sapper。您使用哪种方法将取决于您正在构建的内容的要求和目标。

修改template.html

只要您保留应用程序运行所需的工兵令牌,修改 template.html 就没有问题。您可能会在令牌之前包含全局脚本依赖项,例如 firebase 客户端%sapper.scripts%(请参阅您提到的那些教程)。

在 Sapper 更新的情况下,您可能需要更新- Sappertemplate.html团队可能会通知您迁移文档中的必要更改。

这种方法适合部署到 Firebase 托管和使用sapper export,因为您加载 Firebase 客户端库以与 Firestore 交互。

使用 Firebase Admin SDK + Sapper 服务器路由(CRUD 端点)

这种方法用于将 sapper 部署为服务器——或者更确切地说,使用sapper export.

如果您不想使用客户端库,并且确实想充分利用服务器端渲染 (SSR),则可以结合使用 Firebase Admin SDK 和 Sapper 的服务器路由(又名 CRUD 端点)。Firebase Admin SDK 包含所有 Firebase 产品,因此其中包含 Firestore。

使用 Firebase Admin SDK 操作 Firestore 文档的高级方法:

  • 使用 Sapper 的“服务器路由”将文档保存到 Firestore 或从 Firestore 获取文档
  • 使用 Sapper 的preload函数加载文档/数据以进行服务器端渲染
  • 使用浏览器的fetchapi 通过 Sapper 服务器路由创建、读取或更新文档。

要设置 Firebase Admin SDK,您可以按照通过 Firebase 文档设置 Firestore 的说明进行操作,并为代码示例选择Node.js(请注意,对于 Sapper,您可以使用 ES 模块import而不是require语句)。

示例存储库

我目前正在开发的一个项目在上面概述的方法中使用 Sapper+Firestore 用于类似 CMS 的仪表板。它在 Github 上是开源的,所以请随意参考


推荐阅读