【问题标题】:Flutter & Firebase - using firebase_storage along with firebase_authFlutter & Firebase - 使用 firebase_storage 和 firebase_auth
【发布时间】:2018-12-02 08:23:45
【问题描述】:

使用 firebase 软件包: https://pub.dartlang.org/packages/firebase_auth https://pub.dartlang.org/packages/firebase_storage

我可以使用 firebase_auth 登录到 firebase,在那里一切正常,但是当我使用 firebase_storage 包上传文件时,我的访问被拒绝,我必须进入 firebase 并将权限设置为:

service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
  allow read, write;//: if request.auth != null;
   }
 }
}

这对于使用身份验证的应用程序来说并不理想,我如何告诉 firebase_storage 包我通过 firebase_auth 包进行了身份验证?

【问题讨论】:

  • 请编辑您的问题以包含无法按您期望的方式工作的相关代码。请务必检查日志并将错误包含在任何相关的错误消息中。就你现在的问题而言,我们无能为力。 Firebase 存储 SDK 无需了解 Firebase 身份验证 - 它们会自动协同工作。

标签: firebase flutter firebase-storage


【解决方案1】:

你不应该有这个问题,我分享了一个适合我的代码。

Future<Null> ensureLoggedIn() async {
  FirebaseUser firebaseUser = await auth.currentUser();
  assert(firebaseUser != null);
  assert(!firebaseUser.isAnonymous);
}

Future<String> uploadFile(File file) async {
    assert(file != null);
    await ensureLoggedIn();
    int random = new Random().nextInt(100000);
    String _instance = '/files/image_$random.jpg';

    StorageReference ref = FirebaseStorage.instance.ref().child(_instance);
    StorageUploadTask uploadTask = ref.putFile(file);

    final Uri downloadUrl = (await uploadTask.future).downloadUrl;

    return downloadUrl.toString();
  }

【讨论】:

  • 感谢修复它......“StorageReference ref = FirebaseStorage.instance.ref().child(_instance);”我有“最终 StorageReference ref = widget.storage.ref().child('text').child('foo.txt');”
猜你喜欢
  • 2018-10-30
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
  • 2020-10-07
  • 2018-12-01
  • 2020-01-28
  • 2021-10-30
  • 2019-01-21
相关资源
最近更新 更多