Я начал работать с JavaScript / Firestore в течение нескольких дней, но у меня возникли некоторые проблемы с поведением языка в массивах. Я не могу запустить массив с циклом for внутри функции, и почти все время он возвращает мне неопределенное значение. это мой код:
Это код, который принимает все идентификаторы в пожарном депо, чья встреча активная :
function validation () {
let path = firebase.firestore()
path
.collection('database')
.doc('405')
.collection('meetings')
.where('active', '==', true)
.get().then( snapshot =>{
snapshot.docs.forEach( snapshot => {
this.id_firestore.push(snapshot.id)
})
})
},
И это код, который запускаетвсе идентификаторы в массиве id_firestore и берет на себя все сомнения о встрече в firestore:
function search_doubts (){
let data = this.id_firestore // in this line data.value = ["QEq1VexdC28BbWRvSFL7","vFsSdDeHJqJQU13dwMwQ"]
let path = firebase.firestore().collection('database').doc('405').collection('meeting')
console.log(data) // here it logs me all the array normally
console.log(data[0]) // here the log returns me undefined
for (let i = 0; i<data.lenght; i++) {
path.doc(data[i]).collection('doubts').get().then( snapshot =>{
snapshot.docs.forEach( snapshot => {
this.doubts.push(snapshot.data().txt_doubts)
this.id_firestore_doubts.push(snapshot.id)
})
console.log(data[1]) //here it logs me the data normally
})
}
}
Я сделал слишком много поисков, но ничего не нашел об этом поведении, может кто-нибудьответ, почему функция ведет себя так? Это результаты консоли chrome на моем debbug:
Console.log (data):
[__ob__: Observer]
0: "QEq1VexdC28BbWRvSFL7"
1: "vFsSdDeHJqJQU13dwMwQ"
length: 2
__ob__: Observer {value: Array(2), dep: Dep, vmCount: 0}
__proto__: Array
Console.log (data [0]):
undefined
Console.log (data [1])
vFsSdDeHJqJQU13dwMwQ