【发布时间】:2021-06-07 04:01:13
【问题描述】:
我有一个使用 Firestore 存储用户数据的 Flutter 应用。我需要帮助来检索存储在“朋友”数组中的值。下图显示了我的 Firestore 的结构。如您所见,“朋友”字段是一个包含两个值的数组:“123456”和“789123”。
我想将这些值存储在名为friendsList 的变量中,并尝试在getFriendsList() 中执行此操作。为了测试并查看“朋友”数组值是否存储在friendsList 变量中,我在 getFriendsList() 末尾使用了一个打印语句来打印friendsList 的值。但是当我检查我的控制台时,打印的是Instance of 'Future<dynamic>',而不是“朋友”字段的值。
如何将 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);
}
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore