Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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
如何使用react native检查firebase firestore中的集合是否可用_Firebase_React Native_Google Cloud Firestore - Fatal编程技术网

如何使用react native检查firebase firestore中的集合是否可用

如何使用react native检查firebase firestore中的集合是否可用,firebase,react-native,google-cloud-firestore,Firebase,React Native,Google Cloud Firestore,我的firestore结构是这样的 我想在firestore上导入联系人详细信息,但还想检查号码是否已存储在集合中,如果未存储,则存储该号码 我的问题是,如果集合不存在,则导入联系人的工作将不存在 因此,我如何使用react native检查firestore中的主集合是否可用 我的代码用于将联系人详细信息添加到firebase, 在这段代码中,我从firebase获取值,并比较联系人号码(如果未存储),然后将其存储在firebase上 const { fetchedContacts,

我的firestore结构是这样的

我想在firestore上导入联系人详细信息,但还想检查号码是否已存储在集合中,如果未存储,则存储该号码

我的问题是,如果集合不存在,则导入联系人的工作将不存在

因此,我如何使用react native检查firestore中的主集合是否可用

我的代码用于将联系人详细信息添加到firebase, 在这段代码中,我从firebase获取值,并比较联系人号码(如果未存储),然后将其存储在firebase上

    const { fetchedContacts, selectedContact } = this.state;
    const {user_id} = this.props

    firebase.firestore().collection(this.props.user_id).get()
    .then((snap) => {
      snap.forEach(async(doc) => {
          fetchedContacts.map((item) => {
            if(item.isSelected == true) {
              if(doc._data.number[0].number !== item.phoneNumbers[0].number) {
                
              } else {
                item.isSelected = false
              }
            }
          });
      });
      fetchedContacts.map((item) => {
        if(item.isSelected == true) {
              addManualContact( 
                user_id,"", item.givenName, item.middleName, item.familyName, "", "", "",
                "", item.phoneNumbers, "", "", item.emailAddresses, "", item.postalAddresses,
                "", "", "", "", "", "", "", "", "", item.birthday, "", "", item.note, 
                item.company, "", item.jobTitle,""
              )
        }
      })
    });

在添加子集合值之前,是否有任何方法可以检查主集合是否可用。

我不确定是否正确理解您的要求,但您可以使用
snap.exists
这是一个布尔值,用于检查文档是否存在,或
snap.empty
用于检查查询是否为空。 所以也许像这样

 firebase.firestore().collection(this.props.user_id).get()
    .then((snap) => {
       if(!snap.empty) {
          // work with documents
       } else {
         // Create some documents
       }
    })

可能是这样的?

在检查集合是否存在时,我建议只查询单个文档。随着集合的增加,这将显著减少用于检查的带宽(从而降低成本和时间)。