【发布时间】:2020-07-16 17:50:30
【问题描述】:
我正在开发一个应用程序,该应用程序根据注册的用户 ID 从我的 firestore 请求某些元素。
现在我正在尝试构建与此相关的通知程序,但是在将过滤器放入 firestore 请求时它会以某种方式中断
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:tutora/states/question_notifier.dart';
import 'package:tutora/models/answers.dart';
import 'package:firebase_auth/firebase_auth.dart';
Future<String> id() async {
FirebaseUser user = await FirebaseAuth.instance.currentUser();
String userID = user.uid.toString();
return userID;
}
getAnswers(AnswerNotifier answerNotifier) async {
QuerySnapshot snapshot = await Firestore.instance
.collection('Questions')
.where(
'UserID',
isEqualTo: await id(),
)
.getDocuments();
List<Answer> _answerList = [];
snapshot.documents.forEach((document) {
Answer answer = Answer.fromMap(document.data);
_answerList.add(answer);
});
answerNotifier.answerList = _answerList;
}
在我看来,这应该做的是它获取当前用户 ID,然后基于该用户 ID 仅收集与 UserID 列匹配的问题。
如果我在我的代码中手动输入用户 ID,这非常有效,但是当它从 id() 请求当前用户 ID 时,它没有找到任何匹配的问题。所以我在应用程序中的问题列表和我的 _answerList 都是空的。
此时用户已在调用此 Answernotifier 的应用中登录。
感谢您的帮助,这真的让我很烦恼,现在请退出一段时间。
【问题讨论】:
标签: firebase flutter dart google-cloud-firestore firebase-authentication