eventClick
表中有两个属性 eventID
和 userID
所以我想要做的是如果 eventID
和 userID
通常存在然后显示You have already clicked
如果不是,则输入点击。我想过使用两个子句并将其合并,但这只会导致插入值。final checkSnapshot = FirebaseFirestore.instance
.collection('eventClick')
.where('eventID', isEqualTo: eventID)
.where('userID', isEqualTo: userID)
.snapshots();
if (checkSnapshot.exists) {
print('already exists');
} else {
FirebaseFirestore.instance.collection('eventClick').add({
'eventID': eventID,
'eventName': eventName,
'eventImageUrl': eventImageUrl,
'userID': userID
});
}
答案 0 :(得分:1)
您可以尝试使用 .get() 吗?那应该返回一个 QuerySnapshot ,它有一个 'size' 属性。如果为 0,则表示不存在此类文档。
FirebaseFirestore.instance
.collection('eventClick')
.where('eventID', isEqualTo: eventID)
.where('userID', isEqualTo: userID)
.get()
.then((checkSnapshot) {
print(checkSnapshot.docs[0]);
if (checkSnapshot.size > 0) {
print("Already Exists");
} else {
//add the document
}
});