Журнал изменений Firebase - получение пользователя, который внес изменения в базу данных - PullRequest
0 голосов
/ 04 августа 2020

Аналогичная ветка: Получение идентификатора пользователя из триггера Firestore в облачных функциях для Firebase?

Я не могу понять, как это сделать. Я создаю журнал изменений, и все работает, кроме пользователя, который внес изменения. Я пробовал разные методы, например context.auth, но безуспешно. Если я использую что-то вроде firebase.auth (). OnAuthStateChanged (), я продолжаю получать сообщение об ошибке, сообщающее мне, что firebase не определена. Мне просто нужен userId от пользователя, который инициировал изменение. Я использую обработчик событий onWrite (), например:

exports.changeLog = functions.firestore
    .document('organisations/{orgID}/{category}/{document=**}')
    .onWrite((change, context) => {

Это мои текущие зависимости:

const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const db = admin.firestore();

В этом обработчике событий мне нужен UID в переменной или const, поэтому я могу передать его в базу данных, где я создаю документ с данными, которые мне нужны в журнале изменений.

//Create JSON data for changelog
        var data = {
          timestamp: timestamp,
          type: eventType,
          path: path,
          before: beforeData,
          after: afterData,
          person: authVar
        }

        //replace undefined with null, so firestore doesn't give an error
        data = JSON.parse(JSON.stringify(data, function(k, v) {
          if (v === undefined) { return null; } return v; 
        }));
        // Add a new document with a generated id and the data.
        const res = db.collection(changelogPath).add({
          data
        });

человек в данных просто должен быть идентификатором пользователя, я не Больше ничего не нужно. У меня есть документ с данными о каждом пользователе, включая UID, но я не думаю, что в этом случае он будет доступен, поскольку разные документы распределены по нескольким разным коллекциям.

Надеюсь кто-то может помочь мне с этой проблемой или перенаправить меня на ресурс, который указывает, как это делается. В верхней части этой темы я предоставил ссылку, которая должна показать, как это делается, но я не могу понять, как применить это к моей проблеме. Заранее благодарим за помощь!

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