Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.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 检索数据时Firestore返回true(等待数据发送)_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript 检索数据时Firestore返回true(等待数据发送)

Javascript 检索数据时Firestore返回true(等待数据发送),javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我对这段代码有点问题: 函数usernameExists(用户名){ const result=db.collection('users')。其中(“用户名”、“=”、用户名)。get() .then(函数(querySnapshot){ querySnapshot.forEach(函数(doc){ console.log(“真”); 返回true; }); 控制台日志(“假”); 返回false; }) .catch(错误=>{ 返回错误消息; }); }这是因为您没有返回。您应该按照以下步

我对这段代码有点问题:

函数usernameExists(用户名){
const result=db.collection('users')。其中(“用户名”、“=”、用户名)。get()
.then(函数(querySnapshot){
querySnapshot.forEach(函数(doc){
console.log(“真”);
返回true;
});
控制台日志(“假”);
返回false;
})
.catch(错误=>{
返回错误消息;
});

}
这是因为您没有返回。您应该按照以下步骤进行操作:

  function usernameExists(username) {
    return db.collection('users').where("username", "==", username).get()
    .then(function(querySnapshot) {
        querySnapshot.forEach(function(doc) {
          console.log("true");
          // Do something
        });
        // return something;
    })
    .catch(error => {
        return error.message;
    });
  }

例如:

  function usernameExists(username) {
    return db.collection('users').where("username", "==", username).get()
    .then(function(querySnapshot) {
        const theReturnedArray = [];
        querySnapshot.forEach(function(doc) {
          console.log("true");
          theReturnedArray.push(doc.get("theField"));
        });
        return theReturnedArray;
    })
    .catch(error => {
        return error.message;
    });
  }

或者,由于您在评论中说“我只是想看看是否已经使用了用户名”:


请注意,
usernameExists()
本身是一个异步函数,因此您需要使用或异步/等待:

 usernameExists(username)
     .then(result => {
           console.log(result);
     }); 

请说明您是如何使用
usernameExists
函数的,或者尽可能共享部分代码;我只是想看看是否已经使用了用户名。您需要使用async wait生成函数以获得此类类型响应。裁判:
 usernameExists(username)
     .then(result => {
           console.log(result);
     });