создание приложения, которое извлекает данные из firebase после того, как штрих-код продукта был отсканирован, и отображает его в плоском списке, однако я обнаружил проблемы с получением определенной c коллекции по идентификатору, который равен идентификатору штрих-кода из firebase, вместо этого он отображает весь документ
handleBarCodeScanned = ({ type, data }) => {
this.setState({ scanned: true });
firebase
.database()
.ref('items')
.once("value", (item) => {
var li = [];
item.forEach((child) => {
li.push({
key: child.key,
itemName: child.val().itemName,
itemPrice: child.val().itemPrice,
});
});
this.setState({ list: li });
console.log(item.toJSON());
});
Поэтому я попытался жестко закодировать идентификатор коллекции, используя оператор if, и он работает, но я хочу, чтобы он извлекал идентификатор коллекции из базы данных.
if (data == 6001374025686) {
firebase
.database()
.ref('items')
.orderByKey()
.equalTo("6001374025686")
.once("value", (item) => {
var li = [];
item.forEach((child) => {
li.push({
key: child.key,
itemName: child.val().itemName,
itemPrice: child.val().itemPrice,
});
});
this.setState({ list: li });
console.log(item.toJSON());
});
} else if (data == 3607342734074) {
firebase
.database()
.ref('items')
.orderByKey()
.equalTo("3607342734074")
.once("value", (item) => {
var li = [];
item.forEach((child) => {
li.push({
key: child.key,
itemName: child.val().itemName,
itemPrice: child.val().itemPrice,
});
});
this.setState({ list: li });
console.log(item.toJSON());
Надеюсь, моя проблема ясна Пожалуйста, помогите.
Структура базы данных
out Вывод второго подхода 1
вывод 1-го подхода