0

我正在尝试从 firebase 检索 displayName 名称 photoUrl,因为我已经使用 google 登录创建了一个用户,并且我想使用显示照片和显示名称作为 google 帐户的名称。

child: ListTile(
              title: Text("${user.displayName}"),
              subtitle: Text("${user.username}"),
              leading: CachedNetworkImage(
                imageUrl: user.photoUrl,
                placeholder: (context, url) => circularProgress(),
              ),
            ),

在此处输入图像描述

在此处输入图像描述

4

2 回答 2

3

Firebase Auth 不向您提供photoURL包含值的保证。它绝对可以为空,您应该在尝试显示它之前检查它。

于 2020-11-04T18:07:48.987 回答
0

所以这是一个菜鸟错误,我找到了解决方案。

这是一个语法错误或更可能是区分大小写的错误。

确保在为存储设置数据时,保持名称/拼写大小写与定义对时相同:

class User {
  final String username;
  final String photoUrl;
  final String id;
  final String email;
  final String displayName;
  final String bio;

  User(
      {this.username,
      this.photoUrl,
      this.id,
      this.email,
      this.displayName,
      this.bio});

  factory User.fromDocument(DocumentSnapshot doc) {
    return User(
      id: doc['id'],
      username: doc['username'],
      email: doc['email'],
      photoUrl: doc['photoUrl'],
      bio: doc['bio'],
      displayName: doc['displayName'],
    );
  }
}

Firebase 的设置值:

 usersRef.document(user.id).setData({
        "id": user.id,
        "username": username,
        "photoUrl": user.photoUrl,
        "email": user.email,
        "displayName": user.displayName,
        "bio": "",
        "timestamp": timestamp
      });
于 2020-11-05T09:49:52.953 回答