【发布时间】:2021-07-17 15:48:38
【问题描述】:
我是 dart/flutter/firebase 的新手,无法弄清楚如何从 firestore 获取集合数据。下面说一个无效的收集路径。
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
class UserProfile extends StatelessWidget {
final String documentId = FirebaseAuth.instance.currentUser.uid;
@override
Widget build(BuildContext context) {
CollectionReference users = FirebaseFirestore.instance.collection("users");
return FutureBuilder<DocumentSnapshot>(
future: users.doc(documentId).get(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return Text("Something went wrong");
}
if (snapshot.hasData && !snapshot.data.exists) {
return Text("Document does not exist");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data = snapshot.data.data();
return Text("Full Name: ${data['first_name']} ${data['last_name']}");
}
return Text("loading");
},
);
}
}
【问题讨论】:
-
打印出 documentId 并确保它不为空。否则对我来说看起来不错。接下来我要检查的是你的firebase firestore,并确保有一个集合名称'users'应该在哪里
-
感谢亚伦的评论亚伦。是 Firestore 安全规则阻止了它。
标签: flutter google-cloud-firestore