【发布时间】:2021-04-15 08:29:49
【问题描述】:
我正在编写我的 Flutter 应用程序,它要求用户将某些图像上传到 Firebase。 一切都可以完美地进行用户身份验证并将图像存储到 Firebase 存储。 在要求用户从他的手机上传带有描述的图片的部分中,我得到的只是 Firebase 存储部分中的图片但我的数据库中没有描述和其他元数据。
我检查了数据库规则,它们是公开的并且工作正常。
这是图片上传部分的当前代码,工作正常:
void uploadStatusImage() async {
if (validateAndSave()) {
final Reference postImageRef =
FirebaseStorage.instance.ref().child("Post Images");
var timeKey = new DateTime.now();
final Task uploadTask =
postImageRef.child(timeKey.toString() + ".jpg").putFile(sampleImage);
var ImageUrl = await (await uploadTask).ref.getDownloadURL();
url = ImageUrl.toString();
print("Image URL = " + url);
goToHomePage();
saveToDatabase(url);
}
这是不工作的数据库部分:
void saveToDatabase(url) {
var dbTimeKey = new DateTime.now();
var formatDate = new DateFormat('MMM d, yyyy');
var formatTime = new DateFormat('EEEE, hh:mm aa');
String date = formatDate.format(dbTimeKey);
String time = formatTime.format(dbTimeKey);
DatabaseReference ref = FirebaseDatabase.instance.reference();
var data = {
"image": url,
"description": _myValue,
"date": date,
"time": time,
};
ref.child("Posts").push().set(data);
VS 代码没有给我任何错误,并且应用程序在我的 android 模拟器中运行良好。 任何帮助将不胜感激。谢谢。
【问题讨论】:
-
我在flutter/web中遇到了类似的问题(数据没有写入db,但没有dart异常),问题是由于配置文件中初始化FirebaseApp的url不正确造成的。在 Android 中可能会有所不同,cmq 我建议您检查配置 json 文件(特别是 databaseUrl 与您在 firebase 控制台中看到的相对应)。
标签: android flutter dart firebase-realtime-database