从Flutter应用程序中,我试图确定Firebase Storage中图像的下载URL。为了进行测试,没有不应用身份验证安全规则(设置为“允许读,写;”)或应用了身份验证。使用以下方法时,
Future<String> _getDownloadImageUrl(String folder, String filename) async {
String childpath = "$folder/$filename";
StorageReference ref = FirebaseStorage.instance.ref().child(childpath);
Future<String> durl = await ref.getDownloadURL();
return durl;
}
(在Android设备上测试时)出现以下错误:
E / StorageUtil():获取令牌时出错 java.util.concurrent.ExecutionException: com.google.firebase.FirebaseApiNotAvailableException:firebase-auth为 未链接,请退回到未经身份验证的模式。
同一个应用正在查询(Firestore)数据库数据是否正常(没有身份验证),但是我不确定是否缺少步骤,例如,明确执行与Firebase的“未经身份验证的模式”相关的操作存储空间?
答案 0 :(得分:0)
您是否检查了Firebase存储规则?
您可以在存储页面的规则标签中找到它(如下所示)
您将需要更改
allow read, write: if request.auth!=null;
到
allow read, write: if true;
并进行检查,但是显然您将要在生产之前进行更改。
除此之外,您的代码中还有一些错字
Future<String> durl = await ref.getDownloadURL();
应该是
String durl = await ref.getDownloadURL();
/// you can also use `final` and type inference will do the work for you.
答案 1 :(得分:0)