无法将base64映像正确存储在Firebase(即Firebase存储)的云存储中

时间:2018-11-25 16:52:56

标签: firebase react-native firebase-storage

我正在使用Firebase Web界面将base64映像上传到 firebase的云存储(又名firebase存储)。

我用于上传(在React Native中)的代码如下:

const ref = await firebase.storage().ref(user).child(curTime.toString());
await ref.putString(base64String, 'base64', { contentType: 'image/jpeg' })

但是,当我尝试查看图像时,它无法显示。

  1. 上载的字符串可在我的保管箱here中使用(下载以查看它)。
  2. firebase云存储中的文件可用here
  3. 我已将此文件下载到我的保管箱中,您可以here访问它(下载以查看它)。

这是相关代码:

const uploadImageAsync = async(userId, curTime, photoUri) => {
  const user = normalizeUserId(userId); // prepare for firebase write
  let firebaseImageUrl = null;
  let base64String;
  try {
    base64String = await FileSystem.readAsStringAsync(photoUri,
      { encoding: FileSystem.EncodingTypes.Base64 });
  } catch (error) {
    console.log(error);
    return null;
  }

  const ref = await firebase.storage().ref(user).child(curTime.toString());

  await ref.putString(base64String, 'base64', { contentType: 'image/jpeg' })
  .then(async(snapshot) => {
    await snapshot.ref.getDownloadURL().then(uploadURL => {
      firebaseImageUrl = uploadURL;
    }, (error) => { // failed to get uploadedURL location
      console.log(error);
      return null;
    });
  }, (error) => { // failed to upload image to firebase storage);
    console.log(error);
    return null;
  });

  return firebaseImageUrl;
};

0 个答案:

没有答案