Как извлечь информацию из firestore и вернуть функции из триггера обновления firestore? - PullRequest
0 голосов
/ 30 января 2020

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

Мне уже удалось правильно настроить триггер пожарного хранилища (функции работают, когда обновляется мой файл пожарного хранилища), но я не могу получить информацию, которая была обновлена ​​с помощью функций.

Вот мой код функции:

import * as functions from "firebase-functions";
//const functions = require('firebase-functions');
const admin = require("firebase-admin");
admin.initializeApp();

exports.enviaMensagem = functions.firestore
  .document("Events/{eventID}/Listas/Convidados")
  .onWrite(async (change, context) => {
    const eventID = context.params.eventID;
    console.log("eventID: ", eventID);
    if (change.after.data()) {
        const data = change.after.data();

        if ( data!.reference) {
            console.log(data!.reference);
        } else {
            console.log('not possible to get the user reference');
        }

        console.log(data!.toString());
        console.log(change.after.toString());

    }
  });

[ решено ] Моя проблема номер 1 - это когда я пытаюсь console.log(data!.toString()); возврат на консоль становится [object Object], а не фактические данные.

[ решено ] Моя проблема номер 2 что я не могу получить информацию, которая была вставлена ​​в файл пожарного хранилища.

это структура информации, которая была вставлена ​​в файл пожарного хранилища: обновленная структура данных

структура: {[ ссылочный ключ ]: {apelido: 'ab c', estado: 'def', referencia: [ссылочный ключ] }}

Мне нужно получить ссылочный ключ, который является основным тегом для этой карты, а также внутри структура по тегу "referencia"

Как я могу получить этот ссылочный ключ, чтобы я мог его использовать?

Спасибо за вашу помощь!

UPDATE Вот распечатка моего зарегистрированного объекта: Зарегистрированный объект Мне нужно извлечь эту длинную строку, которая появляется сверху и снизу журнала "bJaETeYN4hYJqRN9PnmWfrhs7eC2" Эта строка различна для каждого пользователя, и мне нужна информация о которой пользователь выполняет действие.

ОБНОВЛЕНИЕ 2 Мне удалось получить то, что мне нужно, с помощью функции Object.keys(data!)[0] Я оставляю решение здесь, чтобы другие могли его использовать!

1 Ответ

0 голосов
/ 30 января 2020

Если вы хотите зарегистрировать объект с JavaScript, не вызывайте toString () для него. Просто передайте его напрямую:

console.log(data!)

Документ, который вы написали, немного неловкий. По какой-то причине он содержит одно поле с именем "bJaE ... 7eC2". Поскольку вы не показали код, который записывает эти данные, мы не можем точно сказать, почему это так, или это просто ошибка.

Если вам нужно работать с документом точно так, как написано, вы ' вам придется ссылаться на поле referencia через поле со странным именем, в котором оно находится:

console.log(data!.bJaE...7eC2.referencia)

Вам придется заменить "bJaE ... 7eC2" на полную строку, которую вы видите в поле документа .

Но это имя поля, вероятно, является ошибкой, и вы должны go вернуться и исправить свой клиентский код, чтобы сделать то, что вы на самом деле хотите.

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