【问题标题】:React Native Firebase Storage - getting error when trying to save image with .putFile()React Native Firebase Storage - 尝试使用 .putFile() 保存图像时出错
【发布时间】:2020-05-11 22:06:39
【问题描述】:

我正在尝试将本地图像从手机保存到 Firebase 存储,但出现以下错误。

Permission Denial: reading com.google.android.apps.photos.contentprovider/........uid=XXXXX requires the provider be exported, or grantUriPermission()

见下面的代码。 await imageRef.putFile(localUri, {contentType: 'image/jpg'}); 是问题所在

const uploadImageAndGetUrl = async (localUri, firebasePath) => {
  try {
    const imageRef = storage().ref(firebasePath);
    await imageRef.putFile(localUri, {contentType: 'image/jpg'});
    const url = await imageRef.getDownloadURL();
    return url;
  } catch (err) {
    Alert.alert('Profile.js.....Error getting image url from FB', err);
  }
};

清单如下:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name = "android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

【问题讨论】:

    标签: react-native firebase-storage react-native-firebase


    【解决方案1】:

    解决方案 1:

    import RNFetchBlob from 'rn-fetch-blob'
    
    async function getPathForFirebaseStorage (uri) {
      if (Platform.OS==="ios") return uri
      const stat = await RNFetchBlob.fs.stat(uri)
      return stat.path
    }
    
    const fileUri = await getPathForFirebaseStorage(file.uri)
      const uploadTask = ref.putFile(fileUri)
    

    解决方案 2:

    import RNFS from 'react-native-fs'
    
    const data = await RNFS.readFile(uri, 'base64')
    await ref.putString(data, 'base64')
    

    注意:如果上述解决方案不起作用,请确保使用 react-native-permissions 库的用户获得 READ_EXTERNAL_STORAGE 权限

    【讨论】:

    • 解决方案 2 有效 - 谢谢!没有必要使用 react-native-permissions
    【解决方案2】:

    我不确定是源路径问题还是权限问题。您是否向 Manifest.xml 文件添加了所需的权限。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-08-22
      • 2021-09-10
      • 2018-12-25
      • 2020-04-10
      • 1970-01-01
      • 2021-08-11
      • 2020-03-18
      相关资源
      最近更新 更多