相关疑难解决方法(0)

firebaseArray降序排列?

使用firebaseArray,是否可以按指定的子键进行排序:(https://www.firebase.com/docs/web/guide/retrieving-data.html#section-queries)?

var fireRef = new Firebase(https://dinosaur-facts.firebaseio.com/dinosaurs);
var query = fireRef.orderByChild("echo").limitToFirst(25);
var todos = $firebaseArray(query);
Run Code Online (Sandbox Code Playgroud)

但是,默认情况下,Firebase会按升序检索密钥.

接下来是具有数值的孩子,按升序排序.

有没有办法直接从firebaseArray 以降序获得结果?例如,他们有什么喜欢.reverse().orderBy(desc, ...)

sorting firebase

12
推荐指数
1
解决办法
1万
查看次数

您如何按时间顺序从Firebase正确订购数据

我正在尝试从Firebase订购我的数据,因此最新的帖子位于顶部(如Instagram),但我无法让它正常工作.我应该使用服务器时间戳吗?是否有"createdAt"字段?

func getPosts() {
    POST_REF.observeEventType(.Value, withBlock: { snapshot in
        guard let posts = snapshot.value as? [String : [String : String]] else {
            print("No Posts Found")
            return
        }

        Post.feed?.removeAll()
        for (postID, post) in posts {
            let newPost = Post.initWithPostID(postID, postDict: post)!
            Post.feed?.append(newPost)
        }
        Post.feed? = (Post.feed?.reverse())!
        self.tableView.reloadData()
        }, withCancelBlock: { error in
            print(error.localizedDescription)
    })
}
Run Code Online (Sandbox Code Playgroud)

ios firebase swift firebase-realtime-database

11
推荐指数
1
解决办法
1万
查看次数

如何在swift中创建负Firebase时间戳

对于我正在处理的iOS应用程序,我需要按降序获取消息,即最新消息首先出现,然后是第二个最新消息等.

通过查看其他SO答案和研究,似乎我的情况的最佳方法是创建一个负时间戳,然后将其作为消息的额外属性保存到数据库.

然后我将queryOrderedByChild('negativeTimestamp')用于获取a中的消息,然后使用observeSingleEventchildAdded观察器来处理在进行初始调用后发送的消息.

在firebase 文档中,它说我可以从这段代码firebase.database.ServerValue.TIMESTAMP中获取服务器时间戳值.

我如何为Swift 3写这个?

ios firebase swift firebase-realtime-database

6
推荐指数
1
解决办法
913
查看次数

当我将数据上传到 firebase 时,为什么我的应用程序冻结?

更新: ****小编辑,我发现实际上唯一冻结的是从 firebase 检索数据,尤其是需要检索的图像。func initOberserver 用于从 firebase 检索数据。所以这需要每次在后台完成。但是 tableview 必须同时可用? ****

我在后台线程上有点挣扎。我正在制作一个 firebase 应用程序,但是当我将某些内容上传到 firebase 并将其检索回应用程序时,我的应用程序冻结了一段时间。

我在一个单独的打开文件中有 2 个常量:

let qualityOfServiceClass = QOS_CLASS_BACKGROUND
let backgroundQueue = dispatch_get_global_queue(qualityOfServiceClass, 0)
Run Code Online (Sandbox Code Playgroud)

我有一个视图控制器:ListVC,它使用此功能从 firebase 检索数据。

func initObservers() {

    //LoadingOverlay.shared.showOverlay(self.view)
    dispatch_async(backgroundQueue, {
        DataService.ds.REF_LISTS.observeEventType(.Value, withBlock: { snapshot in
            print(snapshot.value)

            self.lists = []

            if let snapshots = snapshot.children.allObjects as? [FDataSnapshot] {

                for snap in snapshots {
                    print("SNAP: \(snap)")

                    if let listDict = snap.value as? Dictionary<String, AnyObject> {
                        let key = snap.key
                        let list = List(listKey: key, dictionary: …
Run Code Online (Sandbox Code Playgroud)

grand-central-dispatch ios background-thread firebase swift

2
推荐指数
1
解决办法
2108
查看次数

Firebase queryOrderedByChild()方法不提供已排序的数据

我的数据库结构是这样的:

{
  "users": {
    "alovelace": {
      "name": "Ada Lovelace",
      "score": 4,
    },
    "ghopper": { ... },
    "eclarke": { ... }
  }
}
Run Code Online (Sandbox Code Playgroud)

我试图按降序检索前20个分数.

let queryRef = FIRDatabase.database().reference().child("users").queryOrderedByChild("score").queryLimitedToLast(20)
queryRef.observeSingleEventOfType(.Value, withBlock: { (querySnapShot) in
      print(querySnapShot.value)
})
Run Code Online (Sandbox Code Playgroud)

我想要输出像

score": 4
score": 3
score": 2

or 

score": 2
score": 3
score": 4

or 

2
3
4
Run Code Online (Sandbox Code Playgroud)

请让我知道如何解决这个问题.

ios firebase swift firebase-realtime-database ios9

2
推荐指数
2
解决办法
2016
查看次数

如何删除 Firebase 节点中除最新 X 子节点之外的所有子节点?

给定一个 Firebase 节点,lines其中填充了唯一 ID 子节点(来自push()操作),如下所示:

Firebase--
  --lines
    --K3qx02jslkdjNskjwLDK
    --K3qx23jakjdz9Nlskjja
    --K3qxRdXhUFmEJdifOdaj
    --etc...
Run Code Online (Sandbox Code Playgroud)

我希望能够删除除最近添加的 200 个(或 100 个,或其他)lines 之外的所有子级。基本上这是一个清理操作。lines现在我知道我可以通过抓取客户端所有子项的快照,计算条目数,然后使用endsAt(totalChildren-numToKeep)来获取相关数据并运行来做到这一点remove()。但我想避免将所有数据抓取给客户端。

我上面的想法有替代方案吗?

firebase

1
推荐指数
1
解决办法
1179
查看次数