Я загружаю изображения с мобильного в хранилище firebase с помощью кода, приведенного ниже, проблема в том, что я хочу показать загруженные изображения конечному пользователю, но файл URLs.json возвращает ноль, потому что база данных реального времени firebase ноль. Итак, как я могу сохранить изображения в базе данных в реальном времени и получить файл URLs.json для его вызова в приложении или получить файл URLs.json для хранения в Firebase?
Загрузка в Firebase Storage-
FirebaseStorage _storage = FirebaseStorage.instance;
Future uploadPic(File file) async {
if (file != null) {
setState(() {
isLoading = true;
});
var rng = new Random();
String randomId = rng.nextInt(10000000).toString();
String fileName = "" +
randomId +
'${file.absolute.path.endsWith('.png') ? '.png' : '.jpg'}';
StorageReference reference = _storage.ref().child(fileName);
StorageUploadTask uploadTask = reference.putFile(file);
await (await uploadTask.onComplete).ref.getDownloadURL().then((url) {
setState(() {
_imageUrl = url.toString();
updateRTDatabaseWithURL(_imageUrl, randomId);
showInSnackBar('File Uploaded Successfully');
_image = null;
isLoading = false;
});
});
} else
showInSnackBar('Please, Choose a File');
}
List<dynamic> urlList;
updateRTDatabaseWithURL(imageURL, id) async {
var url = 'https://<Project_Name>.firebaseio.com/URLs.json';
await http.get(url).then((res) {
if (res.statusCode == 200) {
var resData = json.decode(res.body);
setState(() {
urlList = resData['URL'];
});
urlList.add(imageURL);
FirebaseDatabase()
.reference()
.child('URLs')
.update({'URL': urlList}).then((v) {
showInSnackBar('URL added to the Firebase List');
}).catchError((e) {
print(e.message);
});
}
});
}