StreamBuilder 没有从 FireStore 获取数据 |扑
StreamBuilder gets no data from FireStore | Flutter
在我的应用程序中,我需要在继续之前获取当前用户的配置文件数据。
我尝试通过在我的代码中使用 StreamBuilder 来实现这一点。
我的问题:
StreamBuilder 总是returns else 语句。好像他无法从 FireStore-Collection 'Users'.
加载任何数据
return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('Users').snapshots(), // It seems like he cannot load any data from the collection 'Users'...
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
if (snapshot.hasData) {
print("Loaded data successfully");
return Container(color: CupertinoColors.systemGreen,);
} else {
print("Could not load data");
return Container(color: CupertinoColors.systemRed,); // The Code always ends here
}
}
);
此外,我没有收到任何类型的错误消息。
颤动医生:
[✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.6 19G2021,
locale de-DE)
[✓] Android toolchain - develop for Android
devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS
and macOS (Xcode 12.1)
[✓] Android Studio (version 4.0)
[✓]
Connected device (1 available)
• No issues found!
为什么我无法从 Firestore 获取任何数据?
编辑:
我的 Firestore“用户”集合 (Sammlung):
Image of my Firestore collection
StreamBuilder 看起来不错,请检查“Users”集合是否已创建并且那里有数据,在我看来这就是失败的原因。问题不在 Flutter 中,更多的是你的数据有问题,这就是你没有得到输出错误的原因。
试试这个,
return StreamBuilder(
stream: Firestore.instance
.collection('Users')
.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
print("snapshotData"+snapshot.data.toString());
if (snapshot.data.toString()=='null')
return Container(color: CupertinoColors.systemRed);
if (snapshot.hasError)
return Container(color: CupertinoColors.systemRed);
if(snapshot.data.documents.length<1)
return Container(color: CupertinoColors.systemRed);
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return new Text('Loading...');
default:
return Container(color: CupertinoColors.systemGreen);
}
},
);
我也在为 blank/null 添加条件。
在我的应用程序中,我需要在继续之前获取当前用户的配置文件数据。 我尝试通过在我的代码中使用 StreamBuilder 来实现这一点。
我的问题: StreamBuilder 总是returns else 语句。好像他无法从 FireStore-Collection 'Users'.
加载任何数据return StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('Users').snapshots(), // It seems like he cannot load any data from the collection 'Users'...
builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot){
if (snapshot.hasData) {
print("Loaded data successfully");
return Container(color: CupertinoColors.systemGreen,);
} else {
print("Could not load data");
return Container(color: CupertinoColors.systemRed,); // The Code always ends here
}
}
);
此外,我没有收到任何类型的错误消息。
颤动医生:
[✓] Flutter (Channel stable, 1.20.4, on Mac OS X 10.15.6 19G2021, locale de-DE)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.2)
[✓] Xcode - develop for iOS and macOS (Xcode 12.1)
[✓] Android Studio (version 4.0)
[✓] Connected device (1 available)• No issues found!
为什么我无法从 Firestore 获取任何数据?
编辑:
我的 Firestore“用户”集合 (Sammlung):
Image of my Firestore collection
StreamBuilder 看起来不错,请检查“Users”集合是否已创建并且那里有数据,在我看来这就是失败的原因。问题不在 Flutter 中,更多的是你的数据有问题,这就是你没有得到输出错误的原因。
试试这个,
return StreamBuilder(
stream: Firestore.instance
.collection('Users')
.snapshots(),
builder: (BuildContext context,
AsyncSnapshot<QuerySnapshot> snapshot) {
print("snapshotData"+snapshot.data.toString());
if (snapshot.data.toString()=='null')
return Container(color: CupertinoColors.systemRed);
if (snapshot.hasError)
return Container(color: CupertinoColors.systemRed);
if(snapshot.data.documents.length<1)
return Container(color: CupertinoColors.systemRed);
switch (snapshot.connectionState) {
case ConnectionState.waiting:
return new Text('Loading...');
default:
return Container(color: CupertinoColors.systemGreen);
}
},
);
我也在为 blank/null 添加条件。