仍然出现错误 <open failed: EACCES (Permission denied)>
Still gets the error <open failed: EACCES (Permission denied)>
我已经阅读了很多可以帮助我解决这个问题的帖子。
这就是这种错误的解决方法。 (只需要插入一行代码到androidmanifest.xml)
android:requestLegacyExternalStorage=”true”
但就我而言,该插入不起作用。
我现在正在开发一个带有本机反应的移动应用程序。
当我尝试将文件放在 firebase 存储上时出现问题。
当然,我将那行代码插入到我的 androidmanifest.xml 文件中。
<application
android:name=”.MainApplication”
android:label=”@string/app_name”
android:icon=”@mipmap/ic_launcher”
android:roundIcon=”@mipmap/ic_launcher_round”
android:allowBackup=”false”
android:theme=”@style/AppTheme”
android:requestLegacyExternalStorage=”true”
>
这是构建脚本
buildscript {
ext {
buildToolsVersion = “29.0.3”
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
ndkVersion = “20.1.5948944”
playServicesVersion = “17.0.0”
androidMapsUtilsVersion = “2.2.3”
}
…
}
这是上传脚本
// uploads file
const pngRef = storage().ref(avatar/upload.png);
console.log(“pngRef”, pngRef);
await pngRef.putFile(fileUri);
const url = await storage()
.ref(avatar/upload.png)
.getDownloadURL();
console.log(“url”, url);
但还是报错
open failed: EACCES (Permission denied)
然后我在我的 firebase 控制台上收到了警报。
Your project's Cloud Firestore database '(default)' has insecure rules
当然,为了我的发展,我允许读写。
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
ADD:这是 firestore 规则。奇怪的是这个项目已经
运行正常,突然出现错误
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
有什么解决办法吗?这是 firebase 错误吗?
如果有人帮助我,我会很高兴。
我还没有真正看到 Firebase 存储中的 rules_version
行,但这些默认规则在规则游乐场中有效,所以客户端一定有问题。
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
您可以尝试将您的代码包装在 try-catch 中吗?这可能有助于获取一些额外的调试详细信息,例如您尝试访问的路径。
try {
const pngRef = storage().ref("avatar/upload.png");
console.log(“pngRef”, pngRef);
await pngRef.putFile(fileUri);
const url = await storage()
.ref("avatar/upload.png")
.getDownloadURL();
console.log(“url”, url);
} catch (e) {
console.log(e)
// This should contain additional details
}
另外,请尝试像我上面那样在引号中添加引用路径。此外,(可能不是问题)但要确保代码在异步函数中。如果仍未修复,请在您的问题中添加来自控制台的其他详细信息。
我已经阅读了很多可以帮助我解决这个问题的帖子。
这就是这种错误的解决方法。 (只需要插入一行代码到androidmanifest.xml)
android:requestLegacyExternalStorage=”true”
但就我而言,该插入不起作用。 我现在正在开发一个带有本机反应的移动应用程序。 当我尝试将文件放在 firebase 存储上时出现问题。 当然,我将那行代码插入到我的 androidmanifest.xml 文件中。
<application
android:name=”.MainApplication”
android:label=”@string/app_name”
android:icon=”@mipmap/ic_launcher”
android:roundIcon=”@mipmap/ic_launcher_round”
android:allowBackup=”false”
android:theme=”@style/AppTheme”
android:requestLegacyExternalStorage=”true”
>
这是构建脚本
buildscript {
ext {
buildToolsVersion = “29.0.3”
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
ndkVersion = “20.1.5948944”
playServicesVersion = “17.0.0”
androidMapsUtilsVersion = “2.2.3”
}
…
}
这是上传脚本
// uploads file
const pngRef = storage().ref(avatar/upload.png);
console.log(“pngRef”, pngRef);
await pngRef.putFile(fileUri);
const url = await storage()
.ref(avatar/upload.png)
.getDownloadURL();
console.log(“url”, url);
但还是报错
open failed: EACCES (Permission denied)
然后我在我的 firebase 控制台上收到了警报。
Your project's Cloud Firestore database '(default)' has insecure rules
当然,为了我的发展,我允许读写。
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
ADD:这是 firestore 规则。奇怪的是这个项目已经 运行正常,突然出现错误
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if true;
}
}
}
有什么解决办法吗?这是 firebase 错误吗? 如果有人帮助我,我会很高兴。
我还没有真正看到 Firebase 存储中的 rules_version
行,但这些默认规则在规则游乐场中有效,所以客户端一定有问题。
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if true;
}
}
}
您可以尝试将您的代码包装在 try-catch 中吗?这可能有助于获取一些额外的调试详细信息,例如您尝试访问的路径。
try {
const pngRef = storage().ref("avatar/upload.png");
console.log(“pngRef”, pngRef);
await pngRef.putFile(fileUri);
const url = await storage()
.ref("avatar/upload.png")
.getDownloadURL();
console.log(“url”, url);
} catch (e) {
console.log(e)
// This should contain additional details
}
另外,请尝试像我上面那样在引号中添加引用路径。此外,(可能不是问题)但要确保代码在异步函数中。如果仍未修复,请在您的问题中添加来自控制台的其他详细信息。