Записать данные в документ при создании - PullRequest
0 голосов
/ 17 сентября 2018

Я новичок в облачной функции Firebase и пытаюсь записывать данные в документ каждый раз, когда создается документ, но данные никогда не записываются, и я не получаю ошибку в консоли. Я что-то пропустил? Я пользуюсь firestore.

exports.updateclient = functions.firestore
  .document('patients/{clientId}')
  .onCreate(async (snap, context) => {
    const database = admin.firestore();
    const settings = {timestampsInSnapshots: true};
    database.settings(settings);
    const clientId= context.params.clientId;
    const patientRef = database.collection('patient').doc(clientId);
    return patientRef.set({ id: clientId}, {merge: true});
  });

Ответы [ 2 ]

0 голосов
/ 17 сентября 2018

Как уже упоминал Дуг, вы пытаетесь обновить документ пациента в другой коллекции.Если это действительно ошибка, попробуйте обновить ее, используя вместо нее

snap.ref.update({
    id: clientId
});

.При этом будет использоваться существующая ссылка, полученная из снимка, который вы получили по триггеру функции, а также будет использоваться обновление вместо набора слияния, что более синтаксически правильно.Это также поможет предотвратить ошибки, подобные описанной выше.

0 голосов
/ 17 сентября 2018

Вы запускаете документы в коллекции под названием "пациенты":

exports.updateclient = functions.firestore
  .document('patients/{clientId}')

Но вы пишете обратно в документ из другой коллекции под названием "пациент":

const patientRef = database.collection('patient').doc(clientId);

Вы хотели написать обратно в коллекцию «пациенты» вместо «пациент»?

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