Когда я запускаю приведенный ниже код, я получаю сообщение об ошибке, как показано ниже:
======== Исключение, обнаруженное библиотекой виджетов ===================================== ================== Следующее утверждение было выдано при построении StreamBuilder (грязное, состояние: _StreamBuilderBaseState ‹DocumentSnapshot, AsyncSnapshot› # cfcf8): Неудачное утверждение: логическое выражение не должно быть нулевым.
Код, который я запустил, показан ниже:
class DataState extends AppState {
final CollectionReference dataCollection =
FirebaseFirestore.instance.collection('data');
Stream<DocumentSnapshot> dataStream({String uid}) =>
dataCollection.doc(uid).snapshots();
class WaitingPage extends StatefulWidget {
@override
_WaitingPageState createState() => _WaitingPageState();
}
class _WaitingPageState extends State<WaitingPage> {
@override
Widget build(BuildContext context) {
final AuthState userProvider = Provider.of<AuthState>(context);
var dataState = Provider.of<DataState>(context, listen:false);
return (userProvider.userModel != null)
? StreamBuilder<DocumentSnapshot>(
stream: dataState.dataStream(uid: userProvider.userModel.userId),
builder: (context, snapshot) {
if (snapshot.hasData && snapshot.data.data() != null) {
Data data = Data.fromMap(snapshot.data.data());
if (data.hasPickup) {
return DataPage(data:data);
}
else{
return Scaffold(
body: Container(
),
);
}
}
return Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
},
)
: Scaffold(
body: Center(
child: CircularProgressIndicator(),
),
);
}
}
Есть предложения о том, как изменить код, чтобы он работал? Спасибо :)
data.hasPickup
равно нулю? Я бы зарегистрировал весь объектdata
, чтобы проверить, есть ли какие-либо неожиданные значения. - person Rafael Lemos   schedule 28.05.2021