javascript中的基本比较语句
所以我尝试运行一个与firebase SDK的比较语句 我有一个功能,可以检查电话号码或电子邮件是否具有有效的invite值/数据库中是否存在文档 我想添加一个比较,说明如果invitationData有效且claimedDate值不等于数据类型null,或者invitationData有效且字符串值不等于null,则警报邀请未确认。我遇到的问题是| |或运算符,只有当我在添加或它停止工作时只做一个参数时,我才能使这个比较起作用javascript中的基本比较语句,javascript,firebase,Javascript,Firebase,所以我尝试运行一个与firebase SDK的比较语句 我有一个功能,可以检查电话号码或电子邮件是否具有有效的invite值/数据库中是否存在文档 我想添加一个比较,说明如果invitationData有效且claimedDate值不等于数据类型null,或者invitationData有效且字符串值不等于null,则警报邀请未确认。我遇到的问题是| |或运算符,只有当我在添加或它停止工作时只做一个参数时,我才能使这个比较起作用 async function checkInvitatio
async function checkInvitation(email = '', phone = '') {
try {
let snapshot = firebase.firestore().collection(COLLECTIONS.INVITATIONS);
if (email) {
snapshot = snapshot.where('email', '==', email);
} else if (phone) {
snapshot = snapshot.where('phone', '==', phone);
}
let invitationData = await snapshot.get();
if (!invitationData || invitationData.docs.length === 0) {
Alert.alert(
'Invitation not confirmed',
'Please try again or join our waiting list.',
);
return false;
}
if ((invitationData && invitationData.docs[0].data().claimedDate !== null) || (invitationData && invitationData.docs[0].data().claimedDate != "somestring")) {
Alert.alert(
'Invitation not confirmed',
'This invitation has already been used',
);
return false;
}
return invitationData.docs[0].id;
} catch (error) {
console.log(error);
throw new Error(error);
}
}
如果您缩短它(请原谅伪性质),它如下所示:
if (claimedDate !== null || claimedDate != "somestring")
我很确定你不是这个意思。也许您打算使用AND?这只是我遇到的这一行问题,其他行正在工作,如果((invitationData&&invitationData.docs[0].data().claimedDate!==null)| |(invitationData&&invitationData.docs[0].data().claimedDate!=“somestring”)){它需要检查invitationData是否有效,并检查claimedDate是否为!==null或!=“somestring”,因此需要满足invitationData,然后不等于其他值之一。确切地说。claimedDate!=null和claimedDate!='somestring'。根据您的情况,它将始终解析为true-如果您考虑一下它的意思是说如果((邀请有效且声明日期不等于null)或(邀请有效且声明日期不等于'somestring'),因此当值不等于这些条件之一且邀请有效时。提醒用户此邀请已被使用。我只是这样重写了它,如果((invitationData&&invitationData.docs[0].data().claimedDate!=null)| |(invitationData&&invitationData.docs[0].data().claimedDate!='somestring'))您有
x!==a | | x!==b
,其中a与b不同。这不起作用,因为任何值x都将完成此测试。您需要x!==a&&x!==b
执行此操作:const claimedDate=invitationData?.docs[0]。data().claimedDate;
然后if(claimedDate&&claimedDate!=“somestring”)