【发布时间】:2021-07-18 23:01:32
【问题描述】:
我目前正在使用这样的列表 `
所以我遇到的问题是,当用户在主集合“meinprofilsettings”集合中更改名称时,名称没有得到更新。 .
这是我现在的使用方法
@override
Widget build(BuildContext context) {
var firestore = FirebaseFirestore.instance;
final user = Provider.of<Userforid>(context);
File _pickedImage;
return Container(
height: 50,
width: widget._width,
child: StreamBuilder<List<ConversationSnippet>>(
stream: DatbaseService.instance.getUserConversations(user.uid),
builder: (_context, AsyncSnapshot _snapshot) {
if (!_snapshot.hasData) {
return Center(child: CircularProgressIndicator());
} else {
var _data = _snapshot.data;
if (_data != null) {
_data.removeWhere((_c) {
return _c.timestamp == null;
});
return ListView.builder(
shrinkWrap: true,
itemCount: _data.length,
itemBuilder: (_context, _index) {
print(allids.length);
return StreamBuilder(
stream: firestore
.collection('meinprofilsettings')
.doc(_data[_index].uid)
.snapshots(),
builder: (context, snapshot) {
log('data: ${_data[_index].uid}');
if (snapshot.hasData) {
dynamic video =
snapshot.data != null ? snapshot.data.data() : {};
print(video.length);
return Text(video['username']);
} else if (snapshot.hasError) {
return const Text('No data avaible right now');
} else {
return Center(child: CircularProgressIndicator());
}
});
},
);
} else {
return Padding(
padding: const EdgeInsets.fromLTRB(0, 250, 0, 0),
child: Text(
"No Conversations Yet",
style: TextStyle(fontSize: 17),
),
);
}
}
},
),
);
}
这是现在的错误
════════ Exception caught by widgets library ═══════════════════════════════════
The following assertion was thrown building StreamBuilder<DocumentSnapshot>(dirty, state: _StreamBuilderBaseState<DocumentSnapshot, AsyncSnapshot<DocumentSnapshot>>#5aafa):
Supported [field] types are [String] and [FieldPath]
'package:cloud_firestore_platform_interface/src/platform_interface/platform_interface_document_snapshot.dart':
Failed assertion: line 69 pos 12: 'field is String || field is FieldPath'
The relevant error-causing widget was
StreamBuilder<DocumentSnapshot>
lib/chatmessenger/recent_conversations_page.dart:77
When the exception was thrown, this was the stack
#2 DocumentSnapshotPlatform.get
package:cloud_firestore_platform_interface/…/platform_interface/platform_interface_document_snapshot.dart:69
#3 DocumentSnapshot.get
package:cloud_firestore/src/document_snapshot.dart:45
#4 DocumentSnapshot.[]
package:cloud_firestore/src/document_snapshot.dart:52
#5 _RecentConversationspageState.build.<anonymous closure>.<anonymous closure>.<anonymous closure>
lib/chatmessenger/recent_conversations_page.dart:123
#6 StreamBuilder.build
package:flutter/…/widgets/async.dart:545
【问题讨论】:
标签: arrays firebase flutter dart google-cloud-firestore