У меня есть две таблицы в Firebase: Vouchers и ClaimedVouchers. Я пытаюсь отобразить ваучеры, которых нет в таблице Заявленные ваучеры. Итак, у меня есть запрос, который получает все ваучеры, затем еще один, который проверяет, заявлены ли они, и если заявлены они или нет, функция должна возвращать либо истину, либо ложь:
Это isClaimedAPI. js
export default () => {
var result;
async function isClaimed(voucher, user) {
var db = Firebase.firestore();
console.log("voucher");
await db
.collection("ClaimedVoucher")
.where("voucherID", "==", voucher)
.where("userID", "==", user)
.get()
.then(function (querySnapshot) {
if (querySnapshot.empty === false) {
result = true;
} else {
result = false;
}
})
.catch(function (error) {
console.log("Error getting documents: ", error);
});
console.log(result, "this is result");
return result;
//Call when component is rendered
useEffect(() => {
isClaimed().then((result) => setResult(result));
}, []);
return [isClaimed];
А затем в моей основной функции:
var user = Firebase.auth().currentUser;
var uid = user.uid;
const [getVouchers, voucherList, errorMessage] = getVouchersAPI(ID); //List of vouchers to be checked
const [isClaimed] = isClaimedAPI();
return(
<ScrollView>
{voucherList.map((item, index) => {
var voucher = item;
var isVoucherClaimed = isClaimed(voucher.voucherID, uid);
console.log("this is result, ", isVoucherClaimed);
if (
isVoucherClaimed === false
) {
return <Text>{item.name}<Text>
}
})}
</ScrollView>
);
Теперь ничего не происходит, и я получаю следующее предупреждение: [Отклонение необработанного обещания: FirebaseError: Функция Query.where () требует допустимый третий аргумент, но он не был определен.], но я думаю, что это не связано с проблемой.