【问题标题】:Firebase Cloud Storage safe Metadata in Firestore what IDFirebase Cloud Storage 安全元数据在 Firestore 中有什么 ID
【发布时间】:2021-07-22 07:26:33
【问题描述】:
我想将上传到 Cloud Storage 的每个文件的元数据保存到 Firestore 文档中,因为它更易于使用。我需要文件的属性作为文档的 ID。我不能真正使用这个名字,因为里面可能有一个/;我不能使用id 属性,因为它是一个时间戳,当我上传文件的新版本时也会发生变化。然后是md5Hash,将其用作 ID 是否安全,或者我应该使用其他东西吗?
【问题讨论】:
标签:
firebase
google-cloud-firestore
google-cloud-functions
md5
【解决方案1】:
只要符合doc 中详述的约束条件,您就可以将任何值用作 Firestore 文档:
- 必须是有效的 UTF-8 字符
- 不得超过 1,500 字节
- 不能包含正斜杠 (/)
- 不能仅由单句点 (.) 或双句点 (..) 组成
- 无法匹配正则表达式.*
如果您的 md5Hash 值遵循这些约束并且对于每个文件都是唯一的,那么它就是完美的。
如果没有,您可以使用任何库来生成此值(例如 UUID 生成器),您甚至可以使用 Firestore SDK 来执行此操作,如下所示使用虚拟集合名称:
const docId = firebase.firestore().collection("_").doc().id;