【发布时间】:2021-06-14 03:33:33
【问题描述】:
请帮忙。代码是使用用户 ID 从一个屏幕移动到另一个屏幕。这是一个聊天应用程序。
我收到的错误是:预期 3 个位置参数,但找到了 2 个。
我试图查看问题出在哪里,但似乎找不到。
这里是代码。
Future<void> _moveToChat(selectedUserID) async {
try {
String chatID;
SharedPreferences prefs = await SharedPreferences.getInstance();
String myID = (prefs.get('userID') ?? 'userID');
if(myID.hashCode > selectedUserID.hashCode) {
chatID = '${selectedUserID.hashCode} - ${myID.hashCode}';
}else{
chatID = '${myID.hashCode} - ${selectedUserID.hashCode}';
}
FirebaseFirestore.instance.collection('chat').doc(chatID).set({});
Navigator.push(
context,
MaterialPageRoute(builder: (context) => Chat(myID, selectedUserID))
);
}catch(e){
print(e.message);
}
}
这是聊天类代码。
class Chat extends StatefulWidget {
Chat(this.myID, this.selectedUserID, this.chatID);
String myID;
String selectedUserID;
String chatID;
@override
_ChatState createState() => _ChatState();
}
class _ChatState extends State<Chat> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
centerTitle: true,
title: Container(
height: 60.0,
decoration: BoxDecoration(
image: DecorationImage(
fit: BoxFit.scaleDown,
image: AssetImage('assets/images/logo.png'),
),
),
),
),
body: StreamBuilder<QuerySnapshot>(
stream: FirebaseFirestore.instance
.collection('Chats')
.orderBy('createdAt', descending: true)
.snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return Container(
child: Center(
child: CircularProgressIndicator(),
),
color: kAccentColor,
);
return Text('dd');
},
),
);
}
}
【问题讨论】:
-
请加
Chat班级代码 -
完成。我已经添加了 ekstra 代码。