尝试将使用 [react-native-document-picker] 选择的文件上传到 fireStore 存储时出现权限拒绝错误

Permission Denial Error when trying to upload file picked with [react-native-document-picker] to fireStore storage

我正在尝试将 xlsx 上传到 firestore 存储,我正在使用 react-native-document-picker 从 ExternalStorageDirectoryPath 中选择文件,所以当我只记录文件 uri 时,我没有得到错误但是一旦尝试上传文件就会抛出错误。
相关代码:

 const uploadFile=async ()=>{
        try {
          
            const res = await DocumentPicker.pick({
                type: [DocumentPicker.types.allFiles],
            });
           
            const task =  Storage().ref('catalogue/'+ res.name).putFile(res.uri);
           
            task.on('state_changed', 
                sn =>{},
                err=>console.log(err),
                () => {
                   console.log('excel uploaded!'+res.name)
                   Storage()
                   .ref("catalogue").child(res.name).getDownloadURL()
                   .then(url => {
                     console.log('uploaded excel url', url);
                   }).catch(err=>console.log(err))
               }
            )
            await task 
             
           
          } catch (err) {
            if (DocumentPicker.isCancel(err)) {
              // User cancelled the picker, exit any dialogs or menus and move on
            } else {
              throw err;
            }
        }
    }

` 我已经在我的 AndroidManifest.xml 文件中包含了所需的权限并重建了项目

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
    <uses-permission android:name="android.permission.MANAGE_DOCUMENTS"/>

但我仍然收到此错误:

Permission Denial: reading com.android.externalStorageProvider uri content://com... requires android.permission.MANAGE_DOCUMENTS, or grantUriPermission()

我在最后一个 android SDK 版本的 Qt 框架中遇到了类似的问题,我通过在清单(pat 应用程序)中添加 requestLegacyExternalStorage 解决了这个问题:

<application android:requestLegacyExternalStorage="true" android:hardwareAccelerated="true" android:name="org.qtproject.qt5.android.bindings.QtApplication" //...

这与最近权限系统的变化有关: https://developer.android.com/about/versions/11/privacy/storage