我只想在Firestore上的特定文档上设置侦听。我目前正在这样做:
child: StreamBuilder<DocumentSnapshot>(
stream:Firestore.instance.collection('users').document(user.uid).snapshots(),
builder: (ctx, snap) {
return Text(
'${snap.connectionState == ConnectionState.done && snap.data != null
? snap.data['flowers'].length,
: user.flowers.length}\flowers',
);
},
不起作用的是,当我在Firestore中更改文档时,不会调用此函数。但是当我使用QuerySnapshot进行完全相同的操作时,它会检测到更改并被调用
答案 0 :(得分:1)
这对我有用。根据需要调整并弄乱下面的代码!希望这会为您指明正确的方向。
return StreamBuilder<DocumentSnapshot>(
stream: Firestore.instance.collection('users').document('4YRRS46OqjL1p0aN1qaM').snapshots(),
builder: (BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) return Text('Error: ${snapshot.error}');
if (!snapshot.hasData) return Container(
child: Center(
child: CircularProgressIndicator()
),
);
return snapshot.data != null
? Text('something')
: Text('something');
},
);