Firebase数据库:告诉我我有数据,当我没有时

问题描述 投票:0回答:1

我正在使用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是否存在或该孩子的数据。

firebase flutter firebase-realtime-database dart
1个回答
0
投票

您是否已打印出'snap2'中的内容?非常确定您需要检查snap2.value是否具有数据而不是snap2。我认为您会发现,即使没有找到记录,即snap2始终包含键(snap2.key)'名称'。当snap2.value返回null时。

© www.soinside.com 2019 - 2024. All rights reserved.