我正在尝试让表单上传能够将数据上传到我的 Firestore 数据库以及将图像上传到我的 Firebase 存储。
我个人可以同时执行这两项操作,但是除了存储上传图像的确切 URL 之外,我似乎无法弄清楚如何以编程方式将图像引用存储在我的 Firestore 中。
但是无论我以编程方式尝试什么都不起作用:
发布图片上传:
const url = await storageRef.snapshot.ref.getDownloadURL()
let imageRef = storage.ref().child(`test/${this.imageData.filename}`).ref
// let imageRef = storageRef.snapshot.ref
// let imageRef = storage.ref(`test/${this.imageData.name}`)
const docRef = await testImagesCollection.add({
thumbnail: imageRef,
dateCreated: firestore.FieldValue.serverTimestamp()
})
alert("upload succeeded", docRef.id)
我通常会得到:FirebaseError:使用无效数据调用函数 DocumentReference.set()。不支持的字段值:自定义引用对象(在字段缩略图中找到)
如果必须的话,我只会存储 URL,但我宁愿不这样做,如果控制台允许我设置引用,我也应该能够以编程方式执行此操作?!
最佳答案
Firestore 引用类型仅适用于对表示为 DocumentReference 的其他文档的引用对象。它们不适用于对 Cloud Storage 中对象的引用。如果您想要存储对 Cloud Storage 中某个对象的引用,您应该将文件的路径存储在存储桶中(作为字符串,而不是 Reference 对象),或者 download URL (以您更方便的为准)。
关于javascript - Firebase存储添加文件引用到firestore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60665512/