Using cloud functions with Firebase FIrestore

تعرفه تبلیغات در سایت
عنوان عکس
عنوان عکس
عنوان عکس
عنوان عکس
عنوان عکس

جستجوگر

یافته ها در جستجو

    امکانات وب

    آرشیو مطالب

    برچسب ها

    Vote count: 0

    I'm trying to use cloud functions to keep a real time count of the number of followers and the number of people a person follows. I did have the functions working for my real time database, but I recently switched over to Firestore. This is my code for my new updated cloud function:

    exports.countfollowerschangeFirestore = functions.firestore.document('users/{userid}/following/{followingid}').onWrite(event => {
        const collectionRef = event.data.ref.parent;
        const countRef = collectionRef.parent.document('profile_values/{profile}/following_count');
    
        //A different attempt at this
        //const countRef = functions.firestore.document('users/{userid}/profile_values/{profile}/following_count');
        return countRef.transaction(current => {
            if (event.data.exists() && !event.data.previous.exists()) {
                 return (current || 0) + 1;
            }
            else if (!event.data.exists() && event.data.previous.exists()) {
                return (current || 0) - 1;
            }
            }).then(() => {
                console.log('Counter updated.');
         });
    });
    

    And this is my function for the real time database:

    exports.countfollowerschange = functions.database.ref('/users/{userid}/followers/{followerid}').onWrite(event => {
        const collectionRef = event.data.ref.parent;
        const countRef = collectionRef.parent.child('follower_count');
    
        // Return the promise from countRef.transaction() so our function 
        // waits for this async event to complete before it exits.
        return countRef.transaction(current => {
            if (event.data.exists() && !event.data.previous.exists()) {
                return (current || 0) + 1;
            }
            else if (!event.data.exists() && event.data.previous.exists()) {
                return (current || 0) - 1;
            }
            }).then(() => {
                console.log('Counter updated.');
        });
    });
    

    It deploys just fine, however when a document gets added to the following collection, nothing happens. Any help would be greatly appreciated.

    asked 34 secs ago
    Matthew Vanlandingham

    نویسنده : استخدام کار بازدید : 4 تاريخ : چهارشنبه 25 بهمن 1396 ساعت: 11:58
    برچسب‌ها :
    اخبار و رسانه هاهنر و ادبیاترایانه و اینترنتعلم و فن آوریتجارت و اقتصاداندیشه و مذهبفوتو بلاگوبلاگ و وبلاگ نویسیفرهنگ و تاریخجامعه و سیاستورزشسرگرمی و طنزشخصیخانواده و زندگیسفر و توریسمفارسی زبان در دیگر کشورها