2020-09-17 06:02:48 +06:30
|
|
|
import 'dart:io';
|
|
|
|
|
|
2020-09-07 16:05:28 +06:30
|
|
|
import 'package:firebase_auth/firebase_auth.dart';
|
2020-09-17 06:02:48 +06:30
|
|
|
import 'package:firebase_storage/firebase_storage.dart';
|
2020-09-07 16:05:28 +06:30
|
|
|
import 'package:logging/logging.dart';
|
2020-09-17 06:02:48 +06:30
|
|
|
import 'package:uuid/uuid.dart';
|
2020-09-07 16:05:28 +06:30
|
|
|
|
|
|
|
|
final log = Logger('firebaseHelper');
|
|
|
|
|
|
|
|
|
|
final FirebaseAuth auth = FirebaseAuth.instance;
|
|
|
|
|
|
|
|
|
|
Future<String> getToken() async {
|
|
|
|
|
FirebaseUser firebaseUser = await auth.currentUser();
|
|
|
|
|
IdTokenResult token = await firebaseUser.getIdToken();
|
|
|
|
|
return token.token;
|
|
|
|
|
}
|
2020-09-17 06:02:48 +06:30
|
|
|
|
|
|
|
|
Future<String> uploadStorage(String path, File file, {String fileName}) async {
|
|
|
|
|
if (fileName == null) {
|
|
|
|
|
fileName = Uuid().v4();
|
|
|
|
|
}
|
|
|
|
|
StorageReference storageReference =
|
|
|
|
|
FirebaseStorage.instance.ref().child('$path/$fileName');
|
|
|
|
|
StorageUploadTask uploadTask = storageReference.putFile(file);
|
|
|
|
|
await uploadTask.onComplete;
|
|
|
|
|
String downloadUrl = await storageReference.getDownloadURL();
|
|
|
|
|
print("name:${await storageReference.getName()}");
|
|
|
|
|
print("bucket:${await storageReference.getBucket()}");
|
|
|
|
|
print("path:${await storageReference.getPath()}");
|
|
|
|
|
print("meta:${await storageReference.getMetadata()}");
|
|
|
|
|
return downloadUrl;
|
|
|
|
|
}
|
2020-10-12 03:34:05 +06:30
|
|
|
|
|
|
|
|
Future<void> deleteStorageFromUrls(List<String> urls) async {
|
|
|
|
|
if (urls == null) return;
|
|
|
|
|
for (int i = 0; i < urls.length; i++) {
|
|
|
|
|
await deleteStorageFromUrl(urls[i]);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Future<void> deleteStorageFromUrl(String url) async {
|
|
|
|
|
try {
|
|
|
|
|
StorageReference storageReference =
|
|
|
|
|
await FirebaseStorage.instance.getReferenceFromUrl(url);
|
|
|
|
|
await storageReference.delete();
|
|
|
|
|
} catch (e) {
|
|
|
|
|
log.warning("deleteStorage:$e");
|
|
|
|
|
}
|
|
|
|
|
}
|