如何为Firestore Databsase调用onwrite事件侦听器函数?

时间:2018-12-26 14:37:41

标签: firebase google-cloud-firestore

functions.firestore
    .document('users/00QAGyS0NqFdDSS78E6r')
    .onWrite(event => {

        const commentId = event.params.commentId;
        const postId = event.params.postId;

        // ref to the parent document
        const docRef = admin.firestore().collection('posts').doc();

        // get all comments and aggregate
        return docRef.collection('comments').orderBy('createdAt', 'desc')
            .get()
            .then(querySnapshot => {

                // get the total comment count
                const commentCount = querySnapshot.size

                const recentComments = []

                // add data from the 5 most recent comments to the array
                querySnapshot.forEach(doc => {
                    recentComments.push( doc.data() )
                });

                recentComments.splice(5)

                // record last comment timestamp
                const lastActivity = recentComments[0].createdAt

                // data to update on the document
                const data = { commentCount, recentComments, lastActivity }

                // run update
                return docRef.update(data)
            })
            .catch(err => console.log(err) )
});

如何为Firestore Databsase调用onwrite事件侦听器功能?

1 个答案:

答案 0 :(得分:0)

在Firestore和Firebase的数据库中发生任何更改时,调用

“ onwrite”事件函数。

exports.eventTriggerUserData = functions.firestore
.document('users/{userId}')
.onWrite((change: any, context: any) => {
    /* Get user Id on which action perform
    const userId = context.params.userId; */

    /* Get data new data after action perform */
    const documentAfter = change.after.exists ? change.after.data() : null;

    /* Get data old data before action perform */
    const documentBefore = change.before.exists ? change.before.data() : null;
});

您必须在Firebase上部署此功能,并在Firestore中添加,更新和删除数据。