【发布时间】:2021-10-25 01:53:22
【问题描述】:
我关注了一些 tutos 并成功在 firestore 上添加了用户,但是当当前用户正在登录时,我无法在个人资料页面上打印此用户,因为 doc. 在我的后端带有红色下划线,他们说:getter ' doc' 没有为类型 'DocumentSnapshot
这是我的整个后端
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
Future<void> userSetup(String displayName) async {
CollectionReference users = FirebaseFirestore.instance.collection('Users');
FirebaseAuth auth = FirebaseAuth.instance;
String uid = auth.currentUser!.uid.toString();
users.add({'displayName': displayName, 'uid' : uid });
final result = await users.doc(uid).get();
return result.doc.data()['displayName'];
}
另外,我的前端也有错误,但我认为这是因为后端错误已初始化或只是编写了代码。
这是我的前端代码: (userId 带有红色下划线,因为它是未定义的,我的 [] 运算符也是),
希望你能帮助我!
FutureBuilder(
future: FirebaseFirestore.instance
.collection('users')
.doc('uid')
.get(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return Text(snapshot.data['displayName'],
);
} else {
return Text("Loading...");
我编辑了
FutureBuilder(
future: FirebaseFirestore.instance
.collection('users')
.doc(FirebaseAuth.instance.currentUser!.uid)
.get(),
builder: (context, snapshot) {
if (snapshot.hasData)
return Text("Loading...");
if (snapshot.data == null) {
print('Document does not exist on the database');
}else{
return Text("Researching data...");
}
if (snapshot.connectionState == ConnectionState.done) {
var name = snapshot.data as DocumentSnapshot;
return Text(name['displayName'],
);
} else {
return Text("Loading..");
}
},
)
【问题讨论】:
标签: firebase flutter google-cloud-firestore backend display