不想下载所有对象

时间:2017-01-10 13:11:54

标签: swift firebase firebase-realtime-database

我很难理解如何根据Firebase的工作原理构建iOS应用。我当前的实现(目前没有使用firebase)有几千个用户,但是使用.childAdded会给我数据库中的所有项目(当然要先开始),但是我可以使用.childAdded。我试图用.childAdded构建一些东西,允许我说下载前20个项目,然后当它们滚动tableview时它会下载下20个项目。我的用户发布了大量照片,他们的Feed会因{{1}}返回的帖子数量而被炸毁。

关于该做什么的想法?

2 个答案:

答案 0 :(得分:2)

这可以帮助您更好地了解如何将Firebase查询转换为等效的SQL查询。

https://firebase.googleblog.com/2013/10/queries-part-1-common-sql-queries.html#paginate

// fetch page 2 of messages
new Firebase("https://examples-sql-queries.firebaseio.com/messages")
.startAt(2) // assumes the priority is the page number
.endAt(2)
.once('value', function(snap) {
   console.log('messages in range', snap.val());
});

答案 1 :(得分:1)

您可以在此处查看Explains Queries

的文档

您可以转到说limitToFirst的部分。 例如,这表示限制为最后10:

var rootRef = firebase.database.ref();
var usersRef = rootRef.child("users");
var usersQuery = usersRef.limitToLast(10);

usersQuery.isEqual(usersRef);  // false
usersQuery.isEqual(usersRef.limitToLast(10));  // true
usersQuery.isEqual(rootRef.limitToLast(10));  // false
usersQuery.isEqual(usersRef.orderByKey().limitToLast(10));  // false