Как вы передаете значение переменной в вызов firebase? - PullRequest
0 голосов
/ 23 января 2020

Скопировано из документации Firebase:

// Create an initial document to update.
var frankDocRef = db.collection("users").doc("frank");
frankDocRef.set({
    name: "Frank",
    favorites: { food: "Pizza", color: "Blue", subject: "recess" },
    age: 12
});

// To update age and favorite color:
db.collection("users").doc("frank").update({
    "age": 13,
    "favorites.color": "Red"
})
.then(function() {
    console.log("Document successfully updated!");
});

Я хочу иметь возможность:

const var1 = 'color'
const color = 'red'
db.collection("users").doc("frank").update({
    "age": 13,
    "favorites.$var1$": color
})

, где $var1$ относится к значению, которое содержит $var1$, в этом падеж или еда, цвет или предмет.

В этом случае обозначение в скобках не работает, так как я передаю строку в базу данных, которая не интерпретируется таким образом.

Построение строки заранее как:

const aString = 'favorites.' + var1 

также не работает, так как вы не можете передать переменную aString следующим образом:

db.collection("users").doc("frank").update({
    "age": 13,
    aString: "Red"
})

Есть ли способ?

1 Ответ

2 голосов
/ 23 января 2020

Используйте квадратные скобки []:

db.collection("users").doc("frank").update({
    "age": 13,
    [aString]: "Red"
})

Для получения дополнительной информации см. MDN - Вычисленные имена свойств

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...