我是Cloud Firestore的新手,我想在将新用户添加到Firestore时创建一个函数,它会生成一个唯一的随机数并将其保存在文档中。我如何使用Google Cloud Console实现它?
答案 0 :(得分:1)
只需按下如下所示的ADD COLLECTION
按钮即可实现此目的:
会出现一个新的弹出窗口,如下所示:
以您想要的各种方式命名您的收藏。我把它命名为Products
。按NEXT
,系统会再次出现一个新的弹出窗口:
将Document id
字段留空。选择一个字段(我命名为id productName)和一个名为Milk
的String类型的值。
结果如下:
您可以使用Cloud Functions for 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.log("Notification sent!");
});
});
});
});
因此,当新的写入操作以此路径notifications/{uid}/userNotifications/{notificationId}
发生时,即使出现新文档,我们也可以创建Promise
并发送通知。