@ angular / fire, где существует - PullRequest
0 голосов
/ 23 апреля 2019

Я получаю документ пожарного магазина с «где». Моя цель - узнать, существует ли он уже (например: это псевдо в одной коллекции), но с uid.

 var request = this.ms.afs.collection('users', ref => ref.where('uuidsocial', '==', uid)).get().subscribe(users => { 
      if(users.size > 0){
        console.log("exists");
        console.log(users.size);
      }else{
        console.log("doesn't exist");
      }
    });

Havenне работал, всегда возвращая 1, и я уверен, что это не правильный код сейчас, перепробовал много вещей.Большое спасибо

Ответы [ 2 ]

1 голос
/ 23 апреля 2019

Обновление

Как указано в комментарии, очевидно, users является QuerySnapshot. Вы можете попробовать users.empty, хотя я не вижу причин, по которым users.size не будет работать. Я предполагаю, что по какой-то причине в этой коллекции всегда есть хотя бы один пользователь с uuidsocial === ${whatever your test uid is}. Я бы попробовал console.log(users) посмотреть, что вы получите обратно.

Я думаю, что вы хотите users.length. Массивы Javascript не имеют свойства size.

var request = this.ms.afs.collection('users', ref => ref.where('uuidsocial', '==', uid)).get().subscribe(users => { 
  if (users.length > 0){
    console.log("exists");
    console.log(users.length);
  } else {
    console.log("doesn't exist");
  }
});

0 голосов
/ 23 апреля 2019

Вы можете сделать это следующим образом:

var docRef = this.ms.afs.collection("users").doc(uid);
docRef.get().then((doc) => {
    if (doc.exists) {
        console.log("Document data:", doc.data());
    } else {
        // doc.data() will be undefined in this case
        console.log("No such document!");
    }
}).catch(function(error) {
    console.log("Error getting document:", error);
});

См. Документацию здесь:

https://firebase.google.com/docs/firestore/query-data/get-data

Также сделайте это с запросом:

this.ms.afs.collection('users', (ref) => ref.where('uuidsocial', '==',uid))
    .get()
    .subscribe(user => { if(user.size >= 0) ...do smthg })
...