我想使用WHERE
子句查询集合。可以返回1条记录,也可以不返回记录。我正在尝试处理不返回记录的情况,但Android Studio在if
语句中给出了一个警告,指出操作数不能为空。这是为什么?如何处理可能找不到记录的情况?
FirebaseFirestore firestore = FirebaseFirestore.instance;
//Look up friendUID
final friendUserDocRef = await firestore.collection(usersCollection).where('username', isEqualTo: friendUsername).limit(1).get();
if (friendUserDocRef == null) { //The warning points here
//...
}
1条答案
按热度按时间bbmckpt71#
无论Firebase中是否有文档,
QuerySnapshot
总是被返回-这就是为什么它不能为空。因为你在你的案例中使用limit(1)
,QuerySnapshot
在快照的docs
属性中将有0或1个项目。为了检查是否返回已知记录,你将检查docs
是否为空。