[英]How to Get Array Field Values From Firestore
我有一個使用 Firestore 存儲用戶數據的 Flutter 應用程序。 我需要幫助來檢索存儲在“朋友”數組中的值。 下圖顯示了我的 Firestore 的結構。 如您所見,“朋友”字段是一個包含兩個值的數組:“123456”和“789123”。
我想將這些值存儲在我的名為friendsList
的變量中,並嘗試在 getFriendsList() 中執行此操作。 為了測試 'friends' 數組值是否存儲在friendsList
變量中,我在 getFriendsList() 末尾使用 print 語句來打印friendsList
的值。 但是當我檢查我的控制台時,會打印Instance of 'Future<dynamic>'
而不是“friends”字段的值。
如何將 Firestore 中的“朋友”數組字段的值分配到我的friendsList
變量中?
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:mood/components/nav_drawer.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
FirebaseAuth auth = FirebaseAuth.instance;
User currentUser;
String currentUserUID;
Future<dynamic> friendsList;
class LandingScreen extends StatefulWidget {
static const String id = 'landing_screen';
@override
_LandingScreenState createState() => _LandingScreenState();
}
class _LandingScreenState extends State<LandingScreen> {
final _auth = FirebaseAuth.instance;
@override
void initState() {
super.initState();
getUserData();
}
void getUserData() {
getCurrentUser();
getCurrentUserUID();
getFriendsList();
}
void getCurrentUser() {
final currentUser = _auth.currentUser;
}
void getCurrentUserUID() {
currentUserUID = auth.currentUser.uid;
}
void getFriendsList() {
friendsList = FirebaseFirestore.instance
.collection("Users")
.doc(currentUserUID)
.get()
.then((value) {
return value.data()["friends"];
});
print(friendsList);
}
在 then 回調中,只需將您的列表分配給 friendsList 並將您的 friendsList 更改為List<dynamic>
類型
FirebaseFirestore.instance
.collection("Users")
.doc(currentUserUID)
.get()
.then((value) {
friendsList = value.data()["friends"];
print(friendsList);
});
根據您對異步等待語法的評論,
final value = await FirebaseFirestore.instance
.collection("Users")
.doc(currentUserUID)
.get();
friendsList = value.data()["friends"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.