diff --git a/lib/common/repository/continuous_messages_repository.dart b/lib/common/repository/continuous_messages_repository.dart index 3dbe54a..7f89b4c 100644 --- a/lib/common/repository/continuous_messages_repository.dart +++ b/lib/common/repository/continuous_messages_repository.dart @@ -20,10 +20,11 @@ class ContinuousMessagesRepository { .snapshots(); } - String getMyUserId(){ + String getMyUserId() { return _user.uid; } + Stream sendMessage(String roomId, content) { var docReference = _firestore .collection("room") @@ -32,8 +33,12 @@ class ContinuousMessagesRepository { .document(DateTime.now().millisecondsSinceEpoch.toString()); _firestore.runTransaction((transaction) async { - await transaction - .set(docReference, {'userId': _user.uid, 'content': content, 'userName': _user.displayName}); + await transaction.set(docReference, { + 'userId': _user.uid, + 'content': content, + 'userName': _user.displayName, + 'imgUrl' :_user.photoUrl + }); }); } } diff --git a/lib/ui/chat/chat_page.dart b/lib/ui/chat/chat_page.dart index 7b73c8c..0934d4f 100644 --- a/lib/ui/chat/chat_page.dart +++ b/lib/ui/chat/chat_page.dart @@ -90,14 +90,31 @@ class _ChatPageState extends State { decoration: BoxDecoration( color: Colors.lightGreenAccent, borderRadius: BorderRadius.circular(8.0)), - child: Text(document['userName'] + ': ' + document['content'], - textAlign: _isItMe(document['userId']) - ? TextAlign.right - : TextAlign.left), + child: _isItMe(document['userId']) + ? _myMessage(document) + : _otherMessage(document), margin: EdgeInsets.only(bottom: 10)) ]); } + Widget _myMessage(document) { + return Row(mainAxisAlignment: MainAxisAlignment.end, children: [ + Padding( + padding: EdgeInsets.only(right: 5.0), + child: Text(document['content'], textAlign: TextAlign.right)), + CircleAvatar(backgroundImage: NetworkImage(document['imgUrl'])) + ]); + } + + Widget _otherMessage(document) { + return Row(mainAxisAlignment: MainAxisAlignment.start, children: [ + CircleAvatar(backgroundImage: NetworkImage(document['imgUrl'])), + Padding( + padding: EdgeInsets.only(left: 5.0), + child: Text(document['content'], textAlign: TextAlign.left)) + ]); + } + Widget buildInput() { return Container( child: Row(