【问题标题】:How do I get my app to display multiple user names?如何让我的应用显示多个用户名?
【发布时间】:2021-11-12 17:08:38
【问题描述】:

我正在使用来自 firebase auth 的电子邮件和密码登录。

现在当我更改我的帐户时,显示的用户名将根据更改的帐户而改变。我想在不更改用户名的情况下发布多个帐户。

这是用于声明名称的代码:

Widget displayUserInformation(context, snapshot) {
    final user = snapshot.data;
    return Column(
      children: <Widget>[
        Padding(
          padding: const EdgeInsets.all(8.0),
          child: Text(
            user.displayName,
            style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold),
          ),
        ),
      ],
    );
  }

注册码:

// Email & Password Sign Up
  Future<String> createUserWithEmailAndPassword(
      String email, String password, String name) async {
    final authResult = await _auth.createUserWithEmailAndPassword(
      email: email,
      password: password,
    );
    // Update the username
    await updateUserName(name, authResult.user);
    return authResult.user.uid;
  }

邮政编码:

static Future<void> sendPostInFirebase(String postID, String postContent,
      MyProfileData displayName, String postImageURL) async {
    String postFCMToken;
    if (displayName.myFCMToken == null) {
      SharedPreferences prefs = await SharedPreferences.getInstance();
      postFCMToken = prefs.get('FCMToken');
    } else {
      postFCMToken = displayName.myFCMToken;
    }
    Firestore.instance.collection('thread').document(postID).setData({
      'postID': postID,
      'displayName': displayName.email,
      'userThumbnail': displayName.myThumbnail,
      'postTimeStamp': DateTime.now().millisecondsSinceEpoch,
      'postContent': postContent,
      'postImage': postImageURL,
      'postLikeCount': 0,
      'postCommentCount': 0,
      'FCMToken': postFCMToken
    });
  }

【问题讨论】:

  • “我要发布多个帐户”是什么意思?您想登录一个新帐户并保留以前帐户的用户名吗?
  • 将用户名保存在firestore中,然后获取它,显示它,然后向它发送消息。
  • 我想在应用程序上发布我的消息,它会显示是哪个帐户发布的。但现在它将所有用户名显示为当前帐户。
  • 编辑您的问题并添加您用于发布消息的功能。
  • 我已经编辑了我的问题。

标签: flutter firebase-authentication


【解决方案1】:

在消息文档上,添加一个名为 username 的字段,其中包含发布消息的用户名。然后在需要的地方显示该用户名。

// ... other code here
Firestore.instance.collection('thread').document(postID).setData({
  'postID': postID,
  'displayName': displayName.email,
  'userThumbnail': displayName.myThumbnail,
  'postTimeStamp': DateTime.now().millisecondsSinceEpoch,
  'postContent': postContent,
  'postImage': postImageURL,
  'postLikeCount': 0,
  'postCommentCount': 0,
  'FCMToken': postFCMToken,
  // add username of poster,
  'username': 'PUT THE USERNAME HERE',
  // e.g 'username': FirebaseAuth.instance.currentUser.displayName,
});

然后当你收到消息时,用户名会随之而来,你可以像这样访问它:message['username']message.username(如果定义了模型)

【讨论】:

    猜你喜欢
    • 2012-06-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-06
    • 2023-04-09
    • 1970-01-01
    • 2016-04-18
    • 2012-01-15
    相关资源
    最近更新 更多