如何从扑扑的firestore中获取当前用户数据?

时间:2019-06-07 12:25:38

标签: flutter google-cloud-firestore

我不熟悉扑扑和大火。我正在构建一个社交媒体应用程序,需要从当前登录的用户到用户个人资料页面获取一些用户信息。将Surch作为用户名,电子邮件等。 我已经设法将用户数据保存到Firestore中,但是我正在努力将当前用户信息恢复到我的项目中。

我尝试过这种方法,它确实从firestore中获取了用户信息,但不幸的是没有从当前用户信息中获取用户信息。 我想麻烦是我卡在了Firestore数据库中的第一个文档上?

StreamBuilder(
  stream:
      Firestore.instance.collection('userData').snapshots(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) {
      return CircularProgressIndicator();
    }

    return Container(
      child: Padding(
        padding: const EdgeInsets.only(top: 75.0),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.start,
          children: <Widget>[
            Text(
              snapshot.data.documents[0]['userName'],
              style: TextStyle(fontSize: 25.0),
            ),
            Padding(
              padding: const EdgeInsets.only(top: 5.0),
              child:
                  Text(snapshot.data.documents[0]['email']),
            ),
          ],
        ),
      ),
    );
}),

我非常感谢任何潜在的解决方案。

谢谢!

2 个答案:

答案 0 :(得分:1)

function Parent() {
    const [isOpen, setIsOpen] = React.useState(false);
    return (
        <Wrapper>
            <div onClick={()=> setIsOpen(!isOpen)}>
                something
            </div>
        </Wrapper>
    );
}

像这样将_userName添加到初始化状态

      Future<void> _getUserName() async {
        Firestore.instance
            .collection('Users')
            .document((await FirebaseAuth.instance.currentUser()).uid)
            .get()
            .then((value) {
          setState(() {
            _userName = value.data['UserName'].toString();
          });
        });
      }

并这样称呼它

 void initState() {
    super.initState();
    _getUserName();
  }

我希望这会起作用

答案 1 :(得分:0)

如果您使用Firebase身份验证,则

androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'

将为您提供当前的登录用户。之后,您可以

androidTestImplementation 'androidx.test:runner:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'

获取相关的用户信息。