google-cloud-firestore - 使用 Sapper 设置 Firestore
问题描述
我正在尝试找出使用sapper设置 firestore 的最佳方法。我特别问的是工兵(不是苗条)。
关于这个主题的教程很少,我看到的那些我不确定。它们涉及修改 template.html 文件——我不确定这是否是个好主意。
所以,简而言之,我想知道在将 Firestore 与 sapper 同步方面的最佳实践是什么。
有任何想法吗?
谢谢。
解决方案
有多种方法可以使用 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
函数加载文档/数据以进行服务器端渲染 - 使用浏览器的
fetch
api 通过 Sapper 服务器路由创建、读取或更新文档。
要设置 Firebase Admin SDK,您可以按照通过 Firebase 文档设置 Firestore 的说明进行操作,并为代码示例选择Node.js(请注意,对于 Sapper,您可以使用 ES 模块import
而不是require
语句)。
示例存储库
我目前正在开发的一个项目在上面概述的方法中使用 Sapper+Firestore 用于类似 CMS 的仪表板。它在 Github 上是开源的,所以请随意参考。
推荐阅读
- python - Pycharm Selenium Geckodriver 路径问题
- angular - 子元素初始化后,父组件对子 DOM 的操作导致 ExpressionChangedAfterItHasBeenCheckedError
- excel - 在 VBA 中禁用屏幕更新也会删除 DisplayBar 中的背景
- json - 从自定义 AMI 创建 ec2 实例时提供不同的卷标签
- botframework - 我如何在 C# 中为 Microsoft Bot 框架 V4 编写一个简单的单元测试用例,因为它现在使用 .netcore
- javascript - 当用户单击“在新选项卡中打开”时,如何重定向 iframe 内的链接?
- coq - 类型:输入 Coq
- google-compute-engine - 谷歌云 TCP LB 让 RTMP 和 HTTP(S) 工作
- node.js - node.js 命令行应用程序未运行
- c++ - 执行前解析 STARTUPINFO hStdInput