我正在尝试使用此功能将
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...
我遵循了文档,但它根本不起作用......我找不到任何对此有帮助的东西!
我在这里缺少什么?
如果您需要更多信息,请告诉我!
解决方案相当简单:我需要在我的
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(),
);
}
如果您在 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());