适用于以下用户的Firebase最新Feed

时间:2015-11-08 11:22:25

标签: javascript json firebase angularfire

我正在与Angularjs和Firebase合作。现在我在firebase的新手,因为我努力为我的问题寻找解决方案。

想象一下,我这样排序用户

users:{
    facebook:123456789:{
        blog: [{
            // List of blogs
        }],
        following: [{
            // List of users auth.ids
        }]
    },
    facebook:123456780:{
        blog: [{
            // List of blogs
        }],
        following: [{
            // List of users auth.ids
        }]
    }
}

登录用户博客对象并迭代并将其推送到数组

var blogRef = new Firebase(FirebaseUrl + "/users/" + authData.uid + "/blog");
var userBlog = $firebaseArray(blogRef);
var userBlogDatas = []
blogRef.limitToLast(10).on("child_added", function(snapshot) {
    var snap = snapshot.val();                
    userBlogDatas.push(snap);
});

到目前为止一切正常。

但是如何从以下用户的Feed中获取最新的博客帖子。现在我有一些想法,它代表获取用户博客数据并将其推送到数组中。我不确定是不是正确的方式...... enter image description here

我还阅读了https://github.com/firebase/firefeed/blob/master/www/js/firefeed.js代码,但我无法获取任何信息。

任何想法都会非常有用。

谢谢

1 个答案:

答案 0 :(得分:3)

如果我正确理解了这个问题,还有几种方法可以做到这一点。

一种方法是,不是存储user_id,而是将用户ID存储为密钥,将博客ID存储为值

expect(StringCalculator.new(5).Add("")).to eq 0

然后,您可以将观察者添加到以下节点中的每个博客。您可以从键/值对中获取路径。在这种情况下,Facebook:123456789如下:

users
    facebook:123456789
        blog
            // List of blogs
        following
            user_id_0: blog_id_x
            user_id_1: blog_id_y

另一种选择是在以下节点中创建一个包含两个值的子节点:user_id和blog_id。

/users/user_id_0/blog/blog_id_x
/users/user_id_1/blog/blog_id_y

在这种情况下,facebook:123456789关注了user_id_0的博客0和博客1

注意:user_id_0和user_id_1实际上是Facebook:abcdefg用户ID