Очень странное поведение, которое я испытываю с firestore.
Ниже код дротика не возвращает значение
await Firestore.instance.collection('users')
.where("phoneNumber", isEqualTo: phoneNumber)
.getDocuments();
Код javascript из Интернета возвращает значение
db.collection('users').where('phoneNumber', '==', 'xxxxxxxxxx').get().then((result) => {
console.log( result.docs.length )
}).catch((err) => {
console.log(err)
});
Но я ясно вижу, что номер телефона действительно существует в собрании. Я просто не знаю, происходит ли это из-за ожидающих записей или кэша. Где я могу отключить его, если это так?
изменить код для phNumber
Future<User> getPhoneUser(String phoneNumber) async {
if (phoneNumber == 'xxxxxxxxxx') {
print('yes the phone number is same');
}
try {
QuerySnapshot qsnap = await usersRef
.where("phoneNumber", isEqualTo: phoneNumber)
.getDocuments();
int length = qsnap.documents.length;
if (length > 0) {
DocumentSnapshot doc = qsnap.documents[0];
doc.data['id'] = doc.documentID;
doc.data['createdAt'] = doc.data['createdAt'].toDate().toString();
doc.data['updatedAt'] = doc.data['updatedAt'].toDate().toString();
User user = User.fromJson(doc.data);
return user;
} else {
return null;
}
} catch (error) {
return null;
}
}