首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从Firebase获取数据

如何从Firebase获取数据
EN

Stack Overflow用户
提问于 2018-08-16 22:48:50
回答 1查看 503关注 0票数 0

我已经开发了这些firebase脚本,当文档准备就绪时,我想要一些帮助来从firebase数据中获得计数。

第二个问题,如何使按钮(喜欢/不喜欢)可以点击一次(希望用户只能触发它一次)?

Html

代码语言:javascript
运行
复制
// store the main Firebase URL
var firebaseURL = 'https://app-api-163321.firebaseio.com/like-button/';

// update the likeCounts shown in a <span> beside each blogpost
var postDivs = document.querySelectorAll('.post');

for (var i = 0; i < postDivs.length; i++) {
    var postID = postDivs[i].id;
    var numLikes = getLikeCount(postID);
}

// this function grabs the likeCount for a particular post from the Firebase
function getLikeCount(postID) {
    var thisPostRef = new Firebase(firebaseURL + postID + '/like-count/');
    thisPostRef.once('value', function (snapshot) {
        if (snapshot.val()) {
            document.querySelector('#' + postID + ' .like-count').innerHTML = snapshot.val() + ' likes';
        } else {
            return 0;
        }
    });
}

function likePost(id) {
    var postRef = new Firebase(firebaseURL + id);
    // get current number of likes here, so we can increment if any exist
    postRef.child('like-count').once('value', function (snapshot) {
        var currentLikes = snapshot.val() ? snapshot.val() : 0;
        postRef.update({
            'postID': id,
            'like-count': currentLikes + 1

        }, function (error) {
                console.log(error);
        });
        getLikeCount(id);
    });
}

function dlikePost(id) {
    console.log('running likePost() for post ID:', id);
    var postRef = new Firebase(firebaseURL + id);

    // get current number of likes here, so we can increment if any exist
    postRef.child('like-count').once('value', function (snapshot) {
        console.log('snapshot.val():', snapshot.val());
        var currentLikes = snapshot.val() ? snapshot.val() : 0;
        console.log('currentLikes:', currentLikes);
        postRef.update({
            'postID': id,
            'like-count': currentLikes - 1

        }, function (error) {
            if (error) {
                console.log('Data could not be saved:' + error);
            } else {
                console.log('Data saved successfully');
            }
        });

        getLikeCount(id);
    });
}
代码语言:javascript
运行
复制
<script src='https://cdn.firebase.com/js/client/2.2.7/firebase.js'></script>


<div class="gpc" id="p72561979729402801623">
    <a class="btn btn-success  like bl1" data-id="13796" href="#" onclick="likePost('p72561979729402801623');">like</a>
    <div class="like-count bl2" />
    <a class="btn btn-danger  dislike bl3" href="#" onclick="dlikePost('p72561979729402801623');">dilike</a>
</div>

有没有办法做这件事?

https://jsfiddle.net/vj8regwy/

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51879862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档