我尝试在Firestore中获取不存在的数据时,StreamProvider出现问题。
Stream<CollectedItem> streamCollectedItem(String id,int category)
{
return _db
.collection('users')
.document(id)
.collection('CollectedItems').where('category', isEqualTo: category)
.limit(1)
.snapshots()
.map((snap) => CollectedItem.fromFirestore(snap.documents.first));
}
我这样调用此函数:
return StreamProvider<CollectedItem>.value(
value: db.streamCollectedItem(userID,collectMeNotification.category),
child: AlertDialog(
title: Text('Quantité'),
content: SingleChildScrollView(
child: popUp(collectMeNotification,userID)
),
但是我遇到“未提供catchError”问题,因为我将流与不存在的数据链接起来。
我该如何解决?
答案 0 :(得分:1)
如果流发出错误,则可以使用catchError
提供后备值。
例如,要发出null
,将是:
StreamProvider(
builder: (_) => someStream,
catchError: (_, __) => null,
child: ...,
)