Firebase Firestore从我的文档中获取特定字段



我正试图在我的firestore集合/文档中获取一些字段。我想在代码中的某些位置显示它们。

如何从文档/集合中的用户字段中获取特定字段,例如phoneNumber。

这就是用户数据存储在firebase中的方式。

//create UsersCollection data(一级验证(==用户配置文件

Future createUserData(
String firstName,
String lastName,
String emailAddress,
String phoneNumber,
String gender
) async{
return getInstance.collection("users").doc(user!.email)
.collection("User Profile").doc(uid).set({
"firstName" : firstName,
"lastName" : lastName,
"emailAddress" : emailAddress,
"phoneNumber" : phoneNumber,
"gender" : gender
});
}

我怎么能拿到电话也许不知道。甚至是firstName。

要从firebase获取数据,可以尝试多种方法

用于提取单个项目

var collection = FirebaseFirestore.instance.collection('users');
var docSnapshot = await collection.doc('documentIdhere').get();
if (docSnapshot.exists) {
Map<String, dynamic>? data = docSnapshot.data();
var value = data?['firstName']; // gets the first name
setState((){});
}

你也可以使用像这样的未来构建器

FutureBuilder<DocumentSnapshot<Map<String, dynamic>>>(
future: collection.doc('docume tIdHere').get(),
builder: (_, snapshot) {
if (snapshot.hasError) return Text ('${snapshot.error}');
if (snapshot.hasData) {
var data = snapshot.data!.data();
var firstName = data!['firstName']; 
return Text('first name is $firstName');
}
return Center(child: CircularProgressIndicator());
},
)

您可以尝试此方法并将结果存储在列表中

List myListOfValue[];
List myListOfElement[];

CollectionReference deliveryList =
FirebaseFirestore.instance.collection('your Collecetion');
getData() async {
await deliveryList.get().then((value) {
for (var element in value.docs) {
// you can get a specific value
myListOfValue.add(element['your Value in FireStore']);
// or you can get the entire element and get the value inside the 
//element later
myListOfElement.add(element);

}
});}

最新更新