【发布时间】:2021-09-27 02:41:54
【问题描述】:
是否有办法避免使用 Streambuilder 或 Futurebuilder 从 firebase 查询数据。我曾尝试使用 Future async 但错误说收到 null 直到我重新加载模拟器之后它工作正常。
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
class infoStudentCard extends StatefulWidget {
infoStudentCard();
@override
_infoStudentCardState createState() => _infoStudentCardState();
}
class _infoStudentCardState extends State<infoStudentCard> {
String userId = (FirebaseAuth.instance.currentUser).uid;
String _sname;
String _slastname;
String _semail;
String _sid;
String _sclass;
Future data;
@override
void initState() {
super.initState();
data = getDataFromDb();
}
Future<void> getDataFromDb() async{
FirebaseFirestore.instance
.collection("student")
.doc(userId)
.get()
.then((DocumentSnapshot documentSnapshot) {
this._sname = documentSnapshot.get('sname');
});
}
@override
Widget build(BuildContext context) {
return Text(_sname);
}
}
【问题讨论】: