Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/383.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的基本比较语句_Javascript_Firebase - Fatal编程技术网

javascript中的基本比较语句

javascript中的基本比较语句,javascript,firebase,Javascript,Firebase,所以我尝试运行一个与firebase SDK的比较语句 我有一个功能,可以检查电话号码或电子邮件是否具有有效的invite值/数据库中是否存在文档 我想添加一个比较,说明如果invitationData有效且claimedDate值不等于数据类型null,或者invitationData有效且字符串值不等于null,则警报邀请未确认。我遇到的问题是| |或运算符,只有当我在添加或它停止工作时只做一个参数时,我才能使这个比较起作用 async function checkInvitatio

所以我尝试运行一个与firebase SDK的比较语句

我有一个功能,可以检查电话号码或电子邮件是否具有有效的invite值/数据库中是否存在文档

我想添加一个比较,说明如果invitationData有效且claimedDate值不等于数据类型null,或者invitationData有效且字符串值不等于null,则警报邀请未确认。我遇到的问题是| |或运算符,只有当我在添加或它停止工作时只做一个参数时,我才能使这个比较起作用

    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”)