enter image description here

Итак, я получаю данные из документа firestore, который выглядит следующим образом. {xgvppy7455eeyjllj62yuf: {…}, sorxzerz1ynvy1urmllkdk: {…}, K3N7U2ThQCPVUl4b4rWAfVJiP2d2: {…}} Зашифрованный материал - это просто идентификатор, который я использую для идентификации полей в документе, теперь в них есть объекты, которые выглядят следующим образом.

enter image description here

K3N7U2ThQCPVUl4b4rWAfVJiP2d2:
  balance: "208843"
  description: "Rainy Day"
  name: "Rainy Day Pod"

sorxzerz1ynvy1urmllkdk:
  balance: "214352"
  description: "Sammiched"
  name: "Sammich"

Как я могу получить доступ только к значению ключа описания в обоих объектах?

Извините, вот мой код для получения данных документа.

var docRef = db.collection("pods").doc("K3N7U2ThQCPVUl4b4rWAfVJiP2d2");


docRef.get().then(function(doc) {
if (doc.exists) {
    console.log("Document data:", doc.data());
0
Emmanuel Terngu 31 Авг 2020 в 22:25

2 ответа

Лучший ответ

doc.data() возвращает простой объект JavaScript, свойства и значения которого соответствуют полям документа. Похоже, что каждая из ваших случайных строк - это отдельное поле в документе, что означает, что они будут свойствами возвращаемого объекта.

Вы можете использовать любой из методов из этого другого вопроса для итерации свойств объекта JavaScript. Например:

const data = doc.data()
for (field in data) {
    console.log(field)       // logs the random field name
    console.log(data[field)) // logs the object data of that field
}
0
Doug Stevenson 31 Авг 2020 в 21:18

Вы можете перебирать весь объект, независимо от ключа (который хеширован). Чтобы перебрать объект, вы можете:

const obj = {... some data with hashed keys ...}

Object.keys(obj).forEach((key) => {
    const value = obj[key];
    const description = value.description;
    // ... do something with the description;
});
0
paroxyzm 31 Авг 2020 в 21:13