Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Firebase数据库中查询关键字_Firebase_Firebase Realtime Database - Fatal编程技术网

在Firebase数据库中查询关键字

在Firebase数据库中查询关键字,firebase,firebase-realtime-database,Firebase,Firebase Realtime Database,支持我有一个如下所示的数据库: { "eventAttendees" : { "fm" : { "9" : "Alice", "23" : "Khanh", "43" : "Bach" } }, "events" : { "fm" : { "date" : "2017-06-16", "name" : "I love Firebase Meetup in Tokyo yesterday".

支持我有一个如下所示的数据库:

{
  "eventAttendees" : {
    "fm" : {
      "9" : "Alice",
      "23" : "Khanh",
      "43" : "Bach"
    }
  },
  "events" : {
    "fm" : {
      "date" : "2017-06-16",
      "name" : "I love Firebase Meetup in Tokyo yesterday". 
    },
    "gm" : {
      "date" : "2017-08-12",
      "name" : "Meet Linh"
    }
  },
  "users" : {
    "1" : {
      "name" : "David"
    },
    "2" : {
      "name" : "Alice"
    },
    "10" : {
      "name" : "Khanh"
    }
  }
}
如果我查询关键字“Firebase Meetup”,它会工作

let query = ref.child("events").queryOrdered(byChild: "name").queryEqual(toValue: "Firebase Meetup").queryLimited(toFirst: 1)
        query.observe(.value, with: { (snapshot) in
             let content = snapshot.value as? [String : AnyObject] ?? [:]
            print(content)
->返回

["fm": {
    date = "2017-06-16";
    "name" : "I love Firebase Meetup in Tokyo yesterday". ;
}]
但是如果我查询关键字“Firebase”,它就不起作用了

是否可以查询“Firebase”并获得如下结果

 ["fm": {
            date = "2017-06-16";
            "name" : "I love Firebase Meetup in Tokyo yesterday". ;
        }]
可以使用startAt()函数:

let query = ref.child("events").queryOrdered(byChild: "name").queryStart(at: "I love Firebase").queryLimited(toFirst: 1)
        query.observe(.value, with: { (snapshot) in
             let content = snapshot.value as? [String : AnyObject] ?? [:]
            print(content)
这里的文档

此外,如果您想从Firebase开始或以Meetup结束,只需执行以下操作:

let query = ref.child("events").queryOrdered(byChild: "name").queryStart(at: "Firebase").queryEnd(at: "in Tokyo yesterday").queryLimited(toFirst: 1)
        query.observe(.value, with: { (snapshot) in
             let content = snapshot.value as? [String : AnyObject] ?? [:]
            print(content)
此处的文档

您可以使用startAt()函数:

let query = ref.child("events").queryOrdered(byChild: "name").queryStart(at: "I love Firebase").queryLimited(toFirst: 1)
        query.observe(.value, with: { (snapshot) in
             let content = snapshot.value as? [String : AnyObject] ?? [:]
            print(content)
这里的文档

此外,如果您想从Firebase开始或以Meetup结束,只需执行以下操作:

let query = ref.child("events").queryOrdered(byChild: "name").queryStart(at: "Firebase").queryEnd(at: "in Tokyo yesterday").queryLimited(toFirst: 1)
        query.observe(.value, with: { (snapshot) in
             let content = snapshot.value as? [String : AnyObject] ?? [:]
            print(content)

此处的文档

查看
querystartingavalue
queryindingavalue
:查看
querystartingavalue
queryindingavalue
:startAt将起作用,因为“Firebase”位于字符串的开头。如果我问“Meetup”怎么办?约翰,在你的问题中,这就是你问的,或者我错了?你想达到什么目的?@John我更新了答案,让我知道这是否是你所期望的:)嗨。很抱歉把问题弄糊涂了。我的意思是如果“名字”:“我喜欢昨天在东京举行的Firebase聚会”。queryStart(位于:“Firebase”).queryLimited(toFirst:1)能否返回相同的结果?不,不,在这种情况下,您需要添加“I love Firebase”@John,仅此而已:)startAt将起作用,因为“Firebase”位于字符串的开头。如果我问“Meetup”怎么办?约翰,在你的问题中,这就是你问的,或者我错了?你想达到什么目的?@John我更新了答案,让我知道这是否是你所期望的:)嗨。很抱歉把问题弄糊涂了。我的意思是如果“名字”:“我喜欢昨天在东京举行的Firebase聚会”。queryStart(位于:“Firebase”).queryLimited(toFirst:1)能否返回相同的结果?不,不,在这种情况下,您需要添加“我爱Firebase”@John,仅此而已:)