#javascript #node.js #firebase #google-cloud-firestore
# #javascript #node.js #firebase #google-облако-firestore
Вопрос:
Я пробовал много разных способов, но ничего не работает. Все, что мне нужно, это удалить карту (внутри другой вызываемой карты question_template
) в firestore
документе, где имя карты известно только во время выполнения (задается в качестве параметра languageName
облачной функции).
const modulesDocument = admin.firestore().collection('quiz').doc('modules');
при использовании строк шаблона я получаю эту ошибку (кстати, я использую JS, а не TS):
Ожидается присвоение свойства.ts(1136)
modulesDocument.update({
`question_template.${languageName}`: admin.firestore.FieldValue.delete()
});
затем я попробовал этот метод, который также не сработал:
const language = `question_template.${languageName}`;
modulesDocument.update({
//the previously defined 'const language' doesn't get referenced here, why?
language: admin.firestore.FieldValue.delete()
});
Ответ №1:
Если вы хотите использовать содержимое строкового выражения в качестве ключа в определении объекта, заключите его в квадратные скобки:
modulesDocument.update({
[language]: admin.firestore.FieldValue.delete()
});
Ответ №2:
использовать
modulesDocument.update({
[`question_template.${languageName}`]: admin.firestore.FieldValue.delete()
});
или
const language = `question_template.${languageName}`;
modulesDocument.update({
[language]: admin.firestore.FieldValue.delete()
});