Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/390.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firebase存储将文件引用添加到firestore_Javascript_Firebase_Google Cloud Firestore_Firebase Storage - Fatal编程技术网

Javascript Firebase存储将文件引用添加到firestore

Javascript Firebase存储将文件引用添加到firestore,javascript,firebase,google-cloud-firestore,firebase-storage,Javascript,Firebase,Google Cloud Firestore,Firebase Storage,我正试图获得一个表单上传工作上传数据到我的Firestore数据库,以及上传图像到我的firebase存储 就个人而言,我可以做到这两件事,但是除了存储上传图像的确切URL外,我似乎不知道如何通过编程将图像引用存储在firestore中 在控制台中,我可以将类型设置为Reference 但无论我在程序上尝试什么都不起作用: 上传图片后: const url = await storageRef.snapshot.ref.getDownloadURL() let imageRef = stora

我正试图获得一个表单上传工作上传数据到我的Firestore数据库,以及上传图像到我的firebase存储

就个人而言,我可以做到这两件事,但是除了存储上传图像的确切URL外,我似乎不知道如何通过编程将图像引用存储在firestore中

在控制台中,我可以将类型设置为Reference

但无论我在程序上尝试什么都不起作用:

上传图片后:

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引用类型仅适用于对表示为对象的其他文档的引用。它们不适用于云存储中对象的引用。如果要在云存储中存储对某个对象的引用,则应该将bucket中文件的路径存储为字符串,而不是对象,或者以更方便的方式存储


如果你有一个对象,你可以通过它的属性获得它的字符串路径。

Firestore引用类型仅适用于对其他表示为对象的文档的引用。它们不适用于云存储中对象的引用。如果要在云存储中存储对某个对象的引用,则应该将bucket中文件的路径存储为字符串,而不是对象,或者以更方便的方式存储


如果你有一个对象,你可以通过它的属性得到它的字符串路径。

这似乎是编程上的问题,但是控制台中的引用类型是什么呢?正如我在回答中所说:Firestore引用类型只适用于对其他表示为DocumentReference对象的文档的引用。云存储对象不是Firestore文档。好吧,那么我不明白为什么它通过控制台工作。通过控制台完成后,我可以在代码中访问该存储引用并获取其上的.path,然后获取下载url。但是谢谢您的回复,我想我只存储路径。@LanFeusT控制台中的引用类型是什么。引用类型确实是一个奇怪的野兽。。。您将在这个AskFirebase视频中找到更多详细信息:这似乎是编程上的问题,但控制台中的引用类型是用于什么的?正如我在回答中所说:Firestore引用类型仅适用于对其他表示为DocumentReference对象的文档的引用。云存储对象不是Firestore文档。好吧,那么我不明白为什么它通过控制台工作。通过控制台完成后,我可以在代码中访问该存储引用并获取其上的.path,然后获取下载url。但是谢谢您的回复,我想我只存储路径。@LanFeusT控制台中的引用类型是什么。引用类型确实是一个奇怪的野兽。。。您将在本AskFirebase视频中找到更多详细信息: