我正在使用FutureBuilder,由于某种原因,快照表示我有数据,而没有。我什至没有一个名为“姓名”的孩子。
Database.dart:
class Database {
final dbRef = FirebaseDatabase.instance.reference();
Future<DataSnapshot> names () async {
return dbRef.child("Names").once();
}
}
Future Builder的流:
Future<DataSnapshot> names () async {
return dbRef.child("Names").once();
}
[我的未来建设者:
FutureBuilder<DataSnapshot>(
future: Database().names(),
builder: (context, AsyncSnapshot<DataSnapshot> snap2) {
if (snap2.hasData) {
// It's returning this when it shouldn't
return Text("Has Data");
} else {
// But not returning this
return Text("No Data");
}
}
),
JSON格式的数据库:
{
"Letters" : {
"letter" : "Some text here"
}
}
我想念什么吗?我确实有一个名为“字母”的孩子,并且我认为将其视为具有数据,但我只想检查Names是否存在或该孩子的数据。
您是否已打印出'snap2'中的内容?非常确定您需要检查snap2.value是否具有数据而不是snap2。我认为您会发现,即使没有找到记录,即snap2始终包含键(snap2.key)'名称'。当snap2.value返回null时。