首页 文章

使用Angularfire2和Firestore自动完成

提问于
浏览
0

有人知道如何使用Angularfire2和Firestore制作自动完成功能吗?

我的意思是,你有一个输入,当你开始写,你进行查询,你会得到所需的结果作为回应 .

我不知道该怎么做 . 我对query.where进行了一些蹩脚的尝试,但是进展不顺利 .

现在我只是在加载时得到所有结果并过滤数据,但我对这个解决方案真的不满意 .

任何帮助,将不胜感激 . 更好的是,有一些解释,因为我迷失在整个角火和火葬场的事情 .

1 回答

  • 0

    我认为这可以使用Behavior subject和switch map operator来实现 .

    步骤:1 . 定义一个行为主题,其中null为初始值 . 2. switchMap这个行为主题是另一个可以实际从firestore获取数据的观察者 . 3.定义在用户键入输入时等待特定时间的去抖时间 .

    请参阅angularfire2的官方github示例 . 我希望这对你有用 .

    inputFilter$ = new BehaviorSubject(null);
        fireStoreResult$ = inputFiler$.swithMap((inputText) => {
          afs.collection('items', ref => {
            let query : firebase.firestore.CollectionReference | firebase.firestore.Query = ref;
            if (inputText) { query = query.where('someParameter', '==', inputText) };
            return query;
          }).valueChanges()
        })
    

相关问题