将图像 Blob 上传到 Firebase - 缺少后续步骤
Uploaded Image Blob To Firebase - Missing Next Steps
我的数据库中保存了一组本地图像 blob。它看起来像这样:
[{"_data":{"blobId":"C4B1459C-4444-436D-836A-9F9CA63B925F","name":"C6DC696D-5555-4204-B8EC-F8F071D1FC15.jpg","offset":0,"size":586074,"type":"image/jpeg"}},{"_data":{"blobId":"5EFDAD62-9ACD-2222-AEBE-DF9DDD938A7B","name":"46FE26E3-6666-4DED-9657-C471231A800D.jpg","offset":0,"size":247568,"type":"image/jpeg"}},{"_data":{"blobId":"8423EF1B-F960-1111-A503-487A448FC895","name":"E2E2456C-9999-4A3C-B3FD-56D38FE0DDAE.jpg","offset":0,"size":407174,"type":"image/jpeg"}}]
我正在将数组保存到 Firestore,并希望在用户登录并显示照片时将 blob 拉下来。我知道在某些时候我需要使用 downloadableURL()
,但我在 FB 文档中没有看到任何地方说明我必须将 blob 作为 URL 上传。我只知道我必须将 blob 放入 FB,我已经完成了。在我上传到 FB 之前或在用户登录/加载初始状态时,任何人都可以指出下一步的正确方向以获得 URL 吗?
正在准备要推送到 firebase 的数据:
const imagesBlob = [];
for(ud in userData.images){
var response = await uriToBlob(userData.images[ud]); //method turns the file:// into a blob
imagesBlob.push(response);
}
const newBlobObject = imagesBlob.map((obj)=> {return Object.assign({}, obj)}); //I push this value to the DB
将数据下拉到状态:blob 包含在 doc.data()
grabUserData = async (userId) => {
var db = firebase.firestore();
var docRef = db.collection("Users").doc(userId);
return docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
return doc.data();;
} else {
console.log("No such document!");
}
})
};
我正在使用 Firebase、React Native 和 Expo
尝试使用 Firebase Storage
将 blob 存储在正确的位置,同时获取 downloadableUrl
const uploadFile = async = (blob) => {
const ref = await firebase
.storage()
.ref('chatRoomFiles/123')
.put(blob);
const url = ref.getDownloadURL();
return url; // <-- Url that returns your uploaded image
}
我的数据库中保存了一组本地图像 blob。它看起来像这样:
[{"_data":{"blobId":"C4B1459C-4444-436D-836A-9F9CA63B925F","name":"C6DC696D-5555-4204-B8EC-F8F071D1FC15.jpg","offset":0,"size":586074,"type":"image/jpeg"}},{"_data":{"blobId":"5EFDAD62-9ACD-2222-AEBE-DF9DDD938A7B","name":"46FE26E3-6666-4DED-9657-C471231A800D.jpg","offset":0,"size":247568,"type":"image/jpeg"}},{"_data":{"blobId":"8423EF1B-F960-1111-A503-487A448FC895","name":"E2E2456C-9999-4A3C-B3FD-56D38FE0DDAE.jpg","offset":0,"size":407174,"type":"image/jpeg"}}]
我正在将数组保存到 Firestore,并希望在用户登录并显示照片时将 blob 拉下来。我知道在某些时候我需要使用 downloadableURL()
,但我在 FB 文档中没有看到任何地方说明我必须将 blob 作为 URL 上传。我只知道我必须将 blob 放入 FB,我已经完成了。在我上传到 FB 之前或在用户登录/加载初始状态时,任何人都可以指出下一步的正确方向以获得 URL 吗?
正在准备要推送到 firebase 的数据:
const imagesBlob = [];
for(ud in userData.images){
var response = await uriToBlob(userData.images[ud]); //method turns the file:// into a blob
imagesBlob.push(response);
}
const newBlobObject = imagesBlob.map((obj)=> {return Object.assign({}, obj)}); //I push this value to the DB
将数据下拉到状态:blob 包含在 doc.data()
grabUserData = async (userId) => {
var db = firebase.firestore();
var docRef = db.collection("Users").doc(userId);
return docRef.get().then(function(doc) {
if (doc.exists) {
console.log("Document data:", doc.data());
return doc.data();;
} else {
console.log("No such document!");
}
})
};
我正在使用 Firebase、React Native 和 Expo
尝试使用 Firebase Storage
将 blob 存储在正确的位置,同时获取 downloadableUrl
const uploadFile = async = (blob) => {
const ref = await firebase
.storage()
.ref('chatRoomFiles/123')
.put(blob);
const url = ref.getDownloadURL();
return url; // <-- Url that returns your uploaded image
}