Flutter Firebase 存储不起作用:没有默认存储桶

问题描述 投票:0回答:2

我正在尝试使用此功能将

pdf-file
上传到
Firebase-Storage
:

  static Future<String> savePdf({
    required Uint8List assetAsUint8List,
    required String fileName,
    required DocumentType documentType,
  }) async {
    String path =
        '${BackendService().keys.studs}/${AuthenticationService().currentUser?.uid}/${documentType.name}/$fileName';

    await FirebaseStorage.instanceFor().ref(path).putData(
          assetAsUint8List,
        );
    return FirebaseStorage.instance.ref(path).getDownloadURL();
  }

但这失败了

error

未处理的异常:[firebase_storage/no-bucket] 找不到默认存储桶。确保您已正确遵循入门指南。

configure
我的应用程序就像这样在我的
main
中:

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: kIsWeb || Platform.isAndroid
        ? FirebaseOptions(
            apiKey: "my-api-key",
            appId: "my-app-id",
            messagingSenderId: "my-messaing-sender-id",
            projectId: "appflug",
          )
        : null,
  );
  runApp(
    const App(),
  );
}

它实际上可以在iOS上运行!但不适用于 Android 或 Web...

我遵循了文档,但它根本不起作用......我找不到任何对此有帮助的东西!

我在这里缺少什么?

如果您需要更多信息,请告诉我!

firebase flutter dart google-cloud-storage firebase-storage
2个回答
18
投票

解决方案相当简单:我需要在我的

storageBucket
中添加
FirebaseOptions
,所以我的
main
看起来像这样:

Future main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: kIsWeb || Platform.isAndroid
        ? FirebaseOptions(
            apiKey: "my-app-key",
            appId: "my-app-id",
            messagingSenderId: "my-messaging-sender-id",
            projectId: "my-project-id",
            storageBucket: "myapp.appspot.com",
          )
        : null,
  );
  runApp(
    const App(),
  );
}

0
投票

如果您在 Android 上工作,那么解决方案很简单:我需要在我的 FirebaseOptions 中添加来自 google-services.json 的 storageBucket,所以我的 main 看起来像这样:

 WidgetsFlutterBinding.ensureInitialized();
 await Firebase.initializeApp(
    options: FirebaseOptions(
        apiKey: 'AIzaSyAz2kNBgLq_vJw2WjzSkdt2HwVP1k814TI',
        appId: '1:288911819468:android:ba34dab02e6268dc683869',
        messagingSenderId: '288911812458',
        projectId: 'fir-series-e6357',
        storageBucket: 'fir-series-e6357.appspot.com'
    )
  );
  runApp(const MyApp());
© www.soinside.com 2019 - 2024. All rights reserved.