- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在开发一个使用 Firebase 作为后端的 Android 应用程序。我是 Firebase 的新手,遇到了一个问题,问题是当我尝试使用 startAt
查询搜索记录时,它返回的结果不是以我输入的关键字开头。
这是数据集
itemname
-KK8vI8A5BZZp3Xo3FpA
name: "abc"
-KK8w3uoJdJ0hBSrq0CS
name: "test"
-KKAC1o9Vazyg9JLtDoQ
name: "dude"
这是代码 fragment
Query query = firebase.child(Constants.KEY_ITEM_NAME).orderByChild("name").startAt("abc");
query.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Iterator<DataSnapshot> i = dataSnapshot.getChildren().iterator();
while (i.hasNext()) {
DataSnapshot d = i.next();
LOG(d.getKey(), d.getValue().toString());
}
}
因此,当我搜索 abc
时,响应还包括 test
。也许我做错了什么或者我走错了路。谁能给我指出正确的方向。
P.S 我正在尝试使用 AutocompleteTextView
来搜索项目。
谢谢
最佳答案
当您调用 orderByChild("name").startAt("abc")
时,数据库按名称属性对所有项目进行排序,跳过 abc
之前的项目,然后全部归还。
如果您只想返回匹配 abc
的 child ,您可以使用 equalTo()
:
query = firebase.child(Constants.KEY_ITEM_NAME).orderByChild("name").equalTo("abc");
关于Android - Firebase 查询 startAt 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37798366/
当我试图通过电子邮件或电话号码查找记录时,我一直在使用下面的两个代码,有时第一个代码工作正常有时不起作用,第二个代码也一样。 下面的代码和什么时候应该使用“equalTo”或“startAt and
我有这个代码,但我不知道如何让歌曲从 0:19 秒开始。你能帮我吗? · ROLEPLAY · var audio = document
与StartAt,StartAtSequence等其他代码相比,我对 StartWithLastReceived subscription option的要求/重要性有些困惑。 我试图深入研究Java
好像 query.startAt 规则被破坏了,或者我不明白。有人可以确认吗?这是最小的可重现错误。 Live example ;使用 CTRL+SHIFT+i 打开 Chrome 控制台。 GitH
我在我的 Android 应用程序中使用查询时遇到了一些问题。我的数据库最终将有成百上千个轮询对象。我想一次获得大约 20 个,一旦完成这 20 个,我将获得下一个 20 个。我可以轻松获得前 20
我的实时数据库节点结构如下: Bookings{ carID1{ BookingStartTime: some POJO BookingStartTime:
我执行以下查询: firebase.database().ref().child('files').child('54a8924f8c417b2a281f4e3a4c639785/').orderBy
我已经为作业定义了以下触发器: var postbagJobTrigger = (ICronTrigger)TriggerBuilder.Create() .WithIdentity(
infiniteHandler($state) { var next = db .collection("posts") .orderBy("timestamp
我的数据从纪元开始以小时为单位存储。我只想获取数据的一部分 - 例如,我想指定我希望所有数据都从 453615 开始。 到目前为止我得到了这段代码: this.dbService.database
让我们假设上面的 Firebase 数据库架构。 我想要的是检索“15039996197”时间戳之后的消息。每个消息对象都有一个createdAt属性。 如何才能仅在特定时间戳之后获取消息?在本例中,
我想使用 startAt() 和 endAt() 方法,但我不完全理解它们是如何工作的。 假设我有当前的数据库 "users" : { "someUser1" : { "email
我正在尝试使用游标,但是每当我查询它时,我都得不到任何结果。例如,下面返回 0, null const next = admin.firestore().collectionGroup('extIte
Firebase 数据库 startAt(boolean) 做什么? Firebase documentation说: Create a query constrained to only retur
正打算将其发布到他们的 github 存储库,但似乎他们更喜欢在这里提出一般性问题。 那么使用startAt()从firebase数据库获取数据时参数有字符串长度限制吗? 我遇到了一个问题,它似乎仅限
我正在尝试使用 firebase 制作 android 应用程序,我想使用 startAt() 在 firebase 上使用搜索功能。但是结果让我很困惑。 我有一些像这样的 Firebase 数据。
我正在开发一个使用 Firebase 作为后端的 Android 应用程序。我是 Firebase 的新手,遇到了一个问题,问题是当我尝试使用 startAt 查询搜索记录时,它返回的结果不是以我输入
这段代码工作正常。 我想要的唯一改进是 - 当我传递“Pi”时,它获取所有以名称“Pi”开头的项目对象,但是当我输入“pi”时它什么都不返回! 这意味着我希望此方法 startAt(itemName)
- foo |--- -LK7rNAPKZP7drHK1eb_ |- timeStamp: 1534966072658 |--- -LKAPfu2lLl2B5zInIhX |-
在我的 firestore 数据库中,有 12+ 个文档。我通过调用以下函数 on button click 正确获取了前 3 个文档.但是在 secondclick ,尽管正确传递了 documen
我是一名优秀的程序员,十分优秀!