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

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});
  });
0
Juste Guipi 17 Сен 2018 в 20:17

2 ответа

Лучший ответ

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

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

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

1
Carlo Field 17 Сен 2018 в 17:28

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

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

Но вы отвечаете на документ из другой коллекции под названием «пациент»:

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

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

1
Doug Stevenson 17 Сен 2018 в 17:21