在我的反应应用中,我从Firebase中获取一个项目列表,以便在列表视图中显示。
this.fb = new Firebase(rootUrl + 'items/');
this.bindAsObject(this.fb, 'items');
this.fb.on('value', this.handleDataLoaded);
每个项目都有一个发布它的用户的uid值。
我在应用中使用authData.uid
来获取已登录的用户uid。
如何过滤列表以仅显示该用户的项目?
答案 0 :(得分:1)
您是否尝试使用snapshot
过滤列表?它的效率更高......
以下是如何使用一个:
var ref = new Firebase("https://YOUR-URL.firebaseio.com/");
ref.orderByChild("location").equalTo("United States").on("child_added", function(snapshot) {
document.write(snapshot.key());
console.log(snapshot.key());
});
您已经问过:“我如何过滤列表以仅显示该用户的项目?”
以上只是一个例子。在您的情况下,使用location
替换 project
,或者您在数据库中存储的任何参数类型(https://YOUR-URL.firebaseio.com/
)和United States
将替换用户名,ID或您要为代码中标识的用户存储的任何参数值。
基本的Firebase查询以我们的orderBy函数之一开头:
orderByChild()
,orderByKey()
或orderByPriority()
。那你可以 将这些与其他五种方法结合起来进行复杂的查询:limitToFirst()
,limitToLast()
,startAt()
,endAt()
和equalTo()
。找出要使用的功能。
有关如何使用快照的详细信息,请参阅此处:firebase.com/blog/2014-11-04-firebase-realtime-queries.html