AngularFire2 orderByKey 和 startAt
AngularFire2 orderByKey and startAt
我有以下数据库结构:
{
"users" : {
"ap1-AXLKSD9ASLKDJJ0991" : {
"enabled" : true,
"color" : "red"
},
"ap1-A778ASDUASDJ8AS8DA" : {
"enabled" : true,
"color" : "blue"
},
"ap2-ASD88ASD8ASD8HAS8D" : {
"enabled" : true,
"color" : "red"
}
}
}
我正在尝试获取所有拥有以 "ap1-" 开头的密钥的用户,如下所示:
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import * as firebase from 'firebase/app';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class FirebaseService {
//
// Database
userList: FirebaseListObservable<any>;
public constructor(
public afDb: AngularFireDatabase) {
}
getUsers() {
return this.userList = this.afDb.list('/users', {
preserveSnapshot: true,
query: {
orderByKey: true,
startAt: 'ap1-'
}
});
}
}
上面的代码但是,returns ap1- 和 ap2- 键。我在网上搜索过,找不到任何方法来实现这个。
我尝试使用 equalTo.. 当我输入完全正确的密钥时,它只找到这个。当我输入一个毫无意义的密钥时,它什么也找不到。
startAt 好像有问题?
你不能像那样用 firebase 来做。 'startsWith' 的作用是检索 'ap1-' 及以上的所有键,而不是检索以 'ap1-' 作为第一个字符的字符串。
如果您有以下键
{"1", "2", "3", "4"}
并像
一样查询
startsWith: "3"
那么你会得到
{ "3", "4" }
我有以下数据库结构:
{
"users" : {
"ap1-AXLKSD9ASLKDJJ0991" : {
"enabled" : true,
"color" : "red"
},
"ap1-A778ASDUASDJ8AS8DA" : {
"enabled" : true,
"color" : "blue"
},
"ap2-ASD88ASD8ASD8HAS8D" : {
"enabled" : true,
"color" : "red"
}
}
}
我正在尝试获取所有拥有以 "ap1-" 开头的密钥的用户,如下所示:
import { Injectable } from '@angular/core';
import { AngularFireDatabase, FirebaseListObservable } from 'angularfire2/database';
import * as firebase from 'firebase/app';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class FirebaseService {
//
// Database
userList: FirebaseListObservable<any>;
public constructor(
public afDb: AngularFireDatabase) {
}
getUsers() {
return this.userList = this.afDb.list('/users', {
preserveSnapshot: true,
query: {
orderByKey: true,
startAt: 'ap1-'
}
});
}
}
上面的代码但是,returns ap1- 和 ap2- 键。我在网上搜索过,找不到任何方法来实现这个。
我尝试使用 equalTo.. 当我输入完全正确的密钥时,它只找到这个。当我输入一个毫无意义的密钥时,它什么也找不到。
startAt 好像有问题?
你不能像那样用 firebase 来做。 'startsWith' 的作用是检索 'ap1-' 及以上的所有键,而不是检索以 'ap1-' 作为第一个字符的字符串。
如果您有以下键
{"1", "2", "3", "4"}
并像
一样查询startsWith: "3"
那么你会得到
{ "3", "4" }