Fórum Duvida com filtros do firebase #620926

12/01/2024

0

Olá, é minha primeira participação aqui, estou aprendendo js e como usar o firebase, estou fazendo uma lista de tarefas com alguns filtros, mas toda vez que muda os filtros está sendo feito uma requisição nova, ai quando envia o arquivo ele mostra na tela a tarefa adicionada varias vezes

https://prnt.sc/RWBO2ECowsnk

nesse exemplo eu mudei os filtros 4 vezes, ai quando adiciono a tarefa ela é renderizada 4 vezes, no banco adiciona normalmente uma tarefa, então quando atualiza a pagina mostra normalmente

https://prnt.sc/AVyRa82q232T

a mesma coisa acontecia com login e logout, mas ai coloquei um removeEventListerner e esta funcionando perfeitamente, mas nos filtros eu estou sem ideia de como fazer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const updateOrderList = user => {
    let inputName = 'taskValue'
    let orderValue = orderBy(inputName)
    let whereValue = ''
     
    orderAscDesc.forEach(radio => {
        if(!radio.checked)return
 
        if(radio.value === 'order__asc' ){
            orderValue = orderBy(inputName)
            clearLis()
        }else if(radio.value === 'order__desc'){
            orderValue = orderBy(inputName, 'desc')
            clearLis()
        }
    })
    orderChecked.forEach(radio => {
        if(!radio.checked)return
         
        if(radio.value === 'Completas'){
            whereValue = where("checked", "==", true)
            clearLis()
        }else if(radio.value === 'Incompletas'){
            whereValue = where("checked", "==", false)
            clearLis()
        }
    })
    orderAlphaDate.forEach(radio => {
        if(!radio.checked)return
         
        if(radio.value === 'data' ){
            inputName = 'date'
            clearLis()
        }else if(radio.value === 'alpha'){
            inputName = 'taskValue'
            clearLis()
        }
    })
    const onlyUser = where('userID', '==', user.uid)
    const queryPhrases = query(
        collectionTask,
        whereValue,
        onlyUser,
        orderValue
    )
 
    clearLis()
    onSnapshot(queryPhrases, renderTasks)
}


a parte que ordena esta assim, se precisar de mais código só falar
Henrique Weigert

Henrique Weigert

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar