云存储入门
快速了解 Firebase Cloud Storage。
Cloud Storage for Firebase 是一个功能强大、高度可扩展且成本效益高的对象存储服务。它使应用程序开发者能够存储和提供用户生成的内容,例如照片或视频。通过此服务,用户可以上传、分享并下载这些文件以在我们的应用程序中使用。
工作原理
Cloud Storage for Firebase 允许我们将用户文件与我们的 Firebase 应用程序关联存储。这些文件可以是图片、音频、视频以及其他任何形式的用户生成内容。Firebase Cloud Storage 将这些文件存储在一个 Google Cloud 存储桶中:存储桶是用于组织数据并控制对这些数据访问权限的 Google Cloud 数据容器。这使得我们能够从 Firebase 和 Google Cloud 两个平台访问这些文件。
得益于强大的 Cloud Storage API,当连接中断时,文件传输将自动恢复。这意味着即使网络质量不佳,用户也能随时在网络上传输大文件。
Firebase SDK 为这些数据添加了 Google 安全机制,确保我们的上传和下载操作均通过安全连接完成。结合 Firebase 认证和 Firebase 安全规则,这保证了用户的文件始终受到保护,处于安全状态。
实现方式
在 Firebase 项目中使用 Cloud Storage 之前,我们必须首先从其子包导入服务的获取函数,然后进行初始化。我们通过从 firebase/storage 子包导入 getStorage 函数来实现这一点。该函数接收一个 Firebase App 实例的引用作为参数:
1import { initializeApp } from 'firebase/app'; 2import { getStorage } from "firebase/storage"; 3 4 5const firebaseConfig = { 6 apiKey: "AIzaSyDNv52XXXXXXXXXXXXXXXXXXXXXX-krGF8E", 7 authDomain: "educative-xxxxxxxxxxx-cfceb.firebaseapp.com", 8 projectId: "educative-xxxxxxxxxxx-cfceb", 9 storageBucket: "educative-xxxxxxxxxxx-cfceb.appspot.com", // storage bucket URL 10 messagingSenderId: "01234567890", 11 appId: "1:01234567890:web:8e17ea99e18ac710e7934b", 12 measurementId: "G4-HBF7IU9NPX", 13}; 14 15const firebaseApp = initializeApp(firebaseConfig); 16 17// 获取 Cloud 存储服务的引用 18export const storage = getStorage(firebaseApp);
启用 Firebase Cloud Storage
要在我们的应用程序中使用 Firebase Cloud Storage,我们必须首先在 Firebase 控制台中启用它。在 Firebase 控制台中启用 Cloud Storage 会创建一个 Google Cloud Storage 存储桶,用于存储我们所有的数据。
注意: 同时启用 Cloud Firestore 也会在 Firebase 项目中启用 Cloud Storage。如果您已在项目中启用了 Cloud Firestore,请跳至本课程的 设置 Cloud Storage 安全规则 部分。
我们按以下步骤启用 Cloud Storage:
- 进入我们的 Firebase 项目仪表板。
- 导航到“Storage”(存储)部分,并点击“Get Started”(开始使用)按钮。
- 现在,我们需要为存储桶定义安全规则。选择“Start in test mode”(以测试模式启动)选项。这将在接下来的 30 天内允许对存储桶进行所有读写操作。
- 接下来,我们需要为 Cloud Storage 存储桶设置位置。默认位置——“nam5 (us-central)”——已足够。有关存储位置的更多信息,请查阅 Firebase 文档。
- 点击“Done”(完成),等待 Firebase 创建存储桶。
注意: 如果您已按照上述步骤在项目中启用了 Firebase Cloud Storage,可以跳过本课程其余部分,因为您在未来 30 天内已获得对存储桶的授权。Firebase 安全规则将在课程后续部分详细讲解。
设置 Cloud Storage 安全规则
如前所述,在 Firebase 项目中启用 Cloud Firestore 也会启用该项目的 Cloud Storage。然而,由于 Cloud Storage 数据默认为私有,这也会设置 Cloud Storage 存储桶的默认安全规则。这些规则会限制对存储桶的所有读写操作。因此,我们必须为存储桶设置新的规则以正常使用。我们可以按以下方式操作:
- 进入 Firebase 控制台的“Storage”(存储)部分。
- 导航到“Rules”(规则)标签页,查看现有的 Cloud Storage 规则。
- 复制下方小部件中的八行代码,并粘贴到提供的代码编辑器中:
1rules_version = '2'; 2service firebase.storage { 3 match /b/{bucket}/o { 4 match /{allPaths=**} { 5 allow read, write; 6 } 7 } 8}
复制上方小部件中的代码,并粘贴到提供的文本编辑器中,如下图所示。完成后,点击“Publish”(发布)按钮以完成设置。
完成以上步骤后,经过身份验证的用户现在可以在我们的应用程序中对 Cloud Storage 执行读写操作。