Обновление Firebase с использованием объекта String - PullRequest
1 голос
/ 06 февраля 2020

Я делаю простую программу для входа в задачи, когда кто-то обновляет поле, я хотел бы обновить документ только тем, что было обновлено, поэтому я создал генератор строк, который будет создавать параметры:

function fireBaseUpdateStringMaker(update_field,update_val)
{
  return '\''+update_field+'\''+' : '+'\''+update_val+'\''+','
}

, который создает поле следующим образом: 'update_field': 'update_val'

Использование этого непосредственно в моем коде работает хорошо, если я следую документации из Firebase db.collections ('this_collection'). Do c ('this_do c'). Update ({'update_field': 'update_val'})

, но если я передам это обновлению как переменную, оно не будет работать

var updater =  'update_field' : 'update_val' ;
db.collections('this_collection').doc('this_doc').update({ updater })

Я видел ответы на другие вопросы, упомянутые с использованием квадратной нотации, но при ее использовании здесь выдается ошибка "':' ожидается", если не ставить квадратную нотацию, в моей базе данных будет создано новое поле с именем "Updater" с содержимым "update_field": 'update_val' ".

Есть ли в любом случае, чтобы сделать это, или я должен просто обновлять каждое значение каждый раз, когда я редактирую документ? Я довольно новичок в NOSQL / Firebase, так что это все еще не слишком интуитивно для меня. Любая помощь приветствуется. спасибо.

1 Ответ

0 голосов
/ 06 февраля 2020

То, что вы делаете, не является допустимым использованием API Firestore. Вы не можете составить строку пар поле / значение - данные документа должны быть объектом JavaScript. Вы должны заполнить JavaScript объект именами полей и свойств, а также их связанными значениями.

Это должно работать:

db.collection('this_collection').doc('this_doc').update({
    field: "value"
})

Если вы хотите создать объект отдельно, как обычно в JavaScript:

const data = { field: "value" }
db.collection('this_collection').doc('this_doc').update(data)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...