Я пытаюсь получить объект первого подходящего потомка, используя административный SDK Firebase. До сих пор я мог получить объект внутри родительского объекта:
{ -LVOBaJXoai9n1mYrs3F: { created: 1546610959716, displayEnterpriseNumber: "BE 0479.312.137", email: "anthony.magnus@gmail.com", enterpriseNumber: "479312137" } }
но я хочу
{ created: 1546610959716, email: "john.doe@gmail.com", token: '51234', isActive: true }
Код
В функции firebase у меня есть следующий код:
try {
const token = req.body.token;
const couponSnapshot = await admin.database().ref(`coupons`).orderByChild('token').equalTo(token).limitToFirst(1).once('value');
const coupon = couponSnapshot.val();
console.log(coupon) //{-LVOBaJXoai9n1mYrs3F: {…}} Object in Object...
} catch(error) {
//error handling
}
Как я могу получить дочерний объект от родительского объекта?
Я попытался перебрать couponSnapshot и прикрепить дочернее значение к переменной coupon, но получаю ошибку.
const couponSnapshot = await admin.database().ref(`coupons`).orderByChild('token').equalTo(token).limitToFirst(1).once('value');
let coupon = {};
couponSnapshot.forEach(childSnapshot => {
coupon = childSnapshot.val();
});
console.log(coupon.email);
Ошибка:
error TS2345: Argument of type '(childSnapshot: DataSnapshot) => void' is not assignable to parameter of type '(
a: DataSnapshot) => boolean'.
Type 'void' is not assignable to type 'boolean'.
Property 'email' does not exist on type '{}'.
Может кто-нибудь мне помочь?