Я понимаю проблему, но не могу найти обходной путь. Я запрашиваю конкретный документ для извлечения массива строк токенов. Мне нужно добавить новый токен в конец этой строки, а затем обновить текущий документ с этим новым массивом токенов.
Для этого я подписался на запрос и в течение этого времени я обновляю этот документ. Но, конечно, когда вы обновляете тот же объект, подписка запускается снова, создавая бесконечный цикл. Я попытался включить оператор take(1)
pipe rxjs, но это ничего не изменило. Есть предложения?
Вот мой код:
this.afs.collection('users').doc(user.userUID).valueChanges().pipe(take(1)).subscribe((user: userModel) => {
const currentTokens: string[] = user.notifTokens ? user.notifTokens : [];
//token variable is provided outside this query
currentTokens.push(token);
//this next lines causes the subscription to trigger again
userRef.doc(user.userUID).update({notifTokens: currentTokens})
})