Flutter Firebase存储返回FirebaseApiNotAvailableException

时间:2019-02-10 21:44:18

标签: android firebase flutter

从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的“未经身份验证的模式”相关的操作存储空间?

2 个答案:

答案 0 :(得分:0)

您是否检查了Firebase存储规则?

您可以在存储页面的规则标签中找到它(如下所示)

enter image description here

您将需要更改

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)

如果使用仿真器,则需要将SHA-1添加到Firebase项目设置中

sample