Аналогичная ветка: Получение идентификатора пользователя из триггера 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, но я не думаю, что в этом случае он будет доступен, поскольку разные документы распределены по нескольким разным коллекциям.
Надеюсь кто-то может помочь мне с этой проблемой или перенаправить меня на ресурс, который указывает, как это делается. В верхней части этой темы я предоставил ссылку, которая должна показать, как это делается, но я не могу понять, как применить это к моей проблеме. Заранее благодарим за помощь!