#javascript #firebase-realtime-database
# #javascript #firebase-realtime-database
Вопрос:
У меня есть структура базы данных firebase ниже, и я столкнулся с некоторыми трудностями при доступе к значениям в базе дочерних узлов при условиях. ниже приведен мой код и структура БД, в которой многие cartId
принадлежат a userid
.
MasterCart
|
|-- AdminCart
|
|- CurrentDate (in string)
|
|-cartId(1)
| |
| |- userId(1)
| | |
| | |- username
| | |- paymentId
| | |- total
| | |
| | |- cartItems
| | |
| | |-ProductId(1)
| | | |
| | | |- productname
| | | |- productPrice
| | | |- quantity
| | | |- productDescription
| | |
| | |-productId(2)
| |
| |- userId(2)
| | ....
|
|
|-cartId(2)
|
|-userId(2.1)
|
|....
проблемы:
- Как получить доступ к значениям,
cartItems
если выполнены следующие условия:
если paymentId
не пусто
Как с этим справиться :
как получить и перебирать заголовки в виде этих данных Json.
это мой код:
var Root = firebase.database().ref();
const cartRef = Root.child('MasterCart').child('AdminCart').child('2020-11-19')
cartRef.once('value',function(snapshot){
if (snapshot.exists()) {
snapshot.forEach(function(spshot2) {
var val = data.val();
var payId = val.paymentId;
var ttl = val.total;
if(payId) {
// how to get and loop thru cartItems
.......
content = '<tr>';
content = '<td>' productname '</td>';
content = '<td>' productprice '</td>';
content = '<td>' quantity '</td>';
content = '</tr>';
});
$('#ex-table').append(content);
}
});
}
});
Ответ №1:
Как насчет следующего:
// for brevity rest of your code is avoided here
if(payId) {
cartRef.child('cartItems').once('value', snapshot3 => {
// omitting existence check for brevity
snapshot3.forEach(cartItem => {
const cartItemVal = cartItem.val();
// now add this item to your DOM
});
});
}
// rest of your code
Комментарии:
1. Есть ли какие-либо ошибки? Существует ли моментальный снимок (т. Е. snapshot3)?