Я новичок в Cloud Firestore, я хочу создать функцию, когда новый пользователь был добавлен в Firestore, он генерирует уникальное случайное число и сохраняет его в документе. Как я могу добиться этого с помощью Google Cloud Console?
Да @AlexMamo ..
Я хотел знать обратное - удаление данных при удалении пользователя. Мой собственный ответ на мой вопрос может дать вам некоторые подсказки. stackoverflow.com/questions/49367260/…
Вы можете добиться этого, просто нажав кнопку ADD COLLECTION, которая выглядит так:
Появится новое всплывающее окно, которое выглядит так:
Назовите свою коллекцию как хотите. Я назвал его Products. Нажмите NEXT, и снова появится новое всплывающее окно:
Оставьте поле Document id пустым. Выберите поле (я назвал id productName) и значение типа String с именем Milk.
Вот результат:
Вы можете использовать Облачные функции для Firebase, поэтому каждый раз, когда новая запись (документ) добавляется в определенное место в вашей базе данных Cloud Firebase, вы можете запускать другую функцию. Для этого я приведу вам пример. Предположим, мы хотим отправить пользователю уведомление, когда что-то происходит.
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.yourFunction = functions.firestore.document("notifications/{uid}/userNotifications/{notificationId}").onWrite(event => {
const uid = event.params.uid;
const notificationId = event.params.notificationId;
return admin.firestore().collection("notifications").doc(uid).collection("userNotifications").doc(notificationId).get().then(queryResult => {
const uid = queryResult.data().senderUid;
const notificationMessage = queryResult.data().notificationMessage;
const fromUser = admin.firestore().collection("users").doc(senderUid).get();
const toUser = admin.firestore().collection("users").doc(uid).get();
return Promise.all([fromUser, toUser]).then(result => {
const fromUserName = result[0].data().userName;
const toUserName = result[1].data().userName;
const tokenId = result[1].data().tokenId;
const notificationContent = {
notification: {
title: "Your Title",
body: notificationMessage,
icon: "default",
sound : "default"
}
};
return admin.messaging().sendToDevice(tokenId, notificationContent).then(result => {
console.info("Notification sent!");
});
});
});
});
Таким образом, когда выполняется новая операция записи по этому пути notifications/{uid}/userNotifications/{notificationId}, другими словами, появляется новый документ, мы можем создать Promise и отправить уведомление.
Я знаю добавление коллекции, я хотел знать и достичь того, что всякий раз, когда запись добавляется с использованием Andriod, NodeJs или Angular, может запускаться функция, и я мог бы достичь другой функции, например, добавление профиля пользователя может генерировать для нее случайный идентификатор.
Я спросил вас, хотите ли вы добиться этого с помощью консоли Firebase, и вы ответили утвердительно. Но, согласно вашему комментарию, см. Мой обновленный ответ.
Да. Я ответил: «Да», потому что это было связано с Firesase Cloud, но с использованием функции, которую нам нужно достичь, очевидно, через консоль.
Теперь я понял. Надеюсь, моя вышеуказанная функция решит вашу проблему.
Вы пробовали мое решение выше, все в порядке?
Вы про Консоль Firebase?