Я создал и успешно развернул функцию, которая будет следить за счетчиками в моей базе данных.Счетчики представляют разные значения данных и предназначены для увеличения при создании нового пользователя при успешной отправке веб-приложения в базу данных.Мои данные успешно отправлены в мою базу данных, но моя облачная функция возвращает ошибку в моих журналах:
Часть "Мужской" является одной изпараметры из моей отправки формы, где пользователь выбирает из раскрывающегося списка вариантов пола.Это заставляет меня думать, что, по крайней мере, значение получает функция.Но откуда ноль?Насколько я могу судить, все данные из представления успешно сохранены в базе данных.
В настоящее время я проверяю свою функцию на "пол", прежде чем перейти к другим полям в моей форме.Моя облачная функция:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.onUserCreate = functions.database
.ref('/students/{studentID}/')
.onCreate((snapshot, context) => {
const userData = snapshot.val();
const countersRef = admin.database().ref('/counters/');
return countersRef.transaction(currentData => {
currentData[userData.gender] = (currentData[userData.gender] || 0) + 1;
return currentData;
});
});
И для справки, моя база данных имеет следующую структуру:
Но мой счетчик для "Мужской" по-прежнему на нуле:
РЕДАКТИРОВАТЬ :
Я зарегистрировался console.log(countersRef)
, console.log(userData)
и console.log(currentData)
и теперь я получаю следующее:
Первый вернул много информации о моей базе данных.Второй:
{ afterGrad: 'Masters',
elaborate: '',
firstName: 'test',
gender: 'Male',
gradDate: '2014',
hometown: 'home',
lastName: 'user',
program: 'Undergraduate',
race: 'American Indian or Alaska Native',
timeToComplete: '2 years' }
Но теперь я получаю эту ошибку для своего журнала currentData: