代码之家  ›  专栏  ›  技术社区  ›  Sandra Willford

FireBase AngularFire2 Typeahead查询不工作

  •  0
  • Sandra Willford  · 技术社区  · 6 年前

    我正试图构造一个预先输入的查询。我现在得到的是返回一个空字符串。我是一个全新的使用FireBase的人,所以不知道我做错了什么。

    list(searchString, path) {
        const list: AngularFireList<IdNamePair> = this.fireBase.list(path, ref => ref
            .orderByChild('name')
            .startAt(searchString)
            .endAt('\uf8ff')
        );
        return list;
    }
    
    getUsersTypeAhead(searchString: string) {
        return this.list(searchString, '/users').snapshotChanges().pipe(
            map(items => items.map(item => ({
                id: item.key,
                ...item.payload.val()
            })))
        );
    }
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   Renaud Tarnec    6 年前

    我认为你应该这样做:

    list(searchString, path) {
        const list: AngularFireList<IdNamePair> = this.fireBase.list(path, ref => ref
            .orderByChild('name')
            .startAt(searchString)
            .endAt(searchString + '\uf8ff')
        );
        return list;
    }
    

    我还没有用AngularFire测试过它,但是使用JavaScript SDK,以下查询工作正常:

    ref
    .orderByChild('name')
    .startAt(searchString)
    .endAt(searchString + '\uf8ff')