如何通过日期范围和其他一些参数同时获取firebase数据

时间:2017-01-06 15:16:19

标签: swift firebase firebase-realtime-database

我正在尝试向firebase撰写查询,以获取% Convert to scientific notation B = regexprep(v, {'B', 'M'}, {'e9', 'e6'}, 'ignorecase') % '12.4e9' '145.3e6' '34.3e6' '1.2e9' % Convert to numbers str2double(B) % 12400000000 145300000 34300000 1200000000 和指定日期范围的帖子 posterId存储为Dates

number

我收到错误:

reference.child("posts")
                .queryOrderedByChild(posterId)
                .queryStartingAtValue(1483706035, childKey: "postedOnDate")
                .queryEndingAtValue(1483707046)
                .queryEqualToValue("-KasdASDHGASasdsa986")
                .observeEventType(...

如果我删除'InvalidQueryParameter', reason: 'Can't call queryEqualToValue: after queryStartingAtValue, queryEndingAtValue or queryEqualToValue was previously called' 我没有收到错误但我也没有收到数据。
我在查询中做错了什么,或者我在这个查询中遗漏了什么? 它的简单查询不知道它为什么不起作用。

2 个答案:

答案 0 :(得分:0)

请尝试此代码,它可以帮助您

ref.child("posts")
            .queryOrderedByChild(posterId)
            .queryStartingAtValue("Range1")
            .queryEndingAtValue("Range2")
                   .observeEventType(.Value, withBlock: { snapshot in
                    print(snapshot.key)
                })

答案 1 :(得分:0)

以下是我如何创建日期数据,将其上传到firebase,检索并最终对其进行排序。全部基于聊天 JSON

中最近的日期完成

这是根据最近的日期从我的firebase数据库中检索密钥的最终结果

enter image description here

首先声明一个名为timestamp的常量

 let timestamp = NSNumber(value: Int(Date().timeIntervalSince1970))

将其与数据库中的其他值同步,并将其推送到firebase

enter image description here

最后,比较方法

    // DISPAY AND SORT TIMER BETWEEN CHAT MESSAGES BASED ON TIMESTAMP
    self.messages.sort(by: { (message1, message2) -> Bool in

        (message1.timestamp.intValue)! > (message2.timestamp?.intValue)!

    })