У меня есть этот код, но я не знаю, откуда возникла недостаточная ошибка безопасности.Я не могу понять это.Может ли это быть из cloudfirestore?
postComment(getBlogId: string, comment: any): Promise<any> {
if (this.currentUser) {
return this.afs.collection('blogs').doc(getBlogId).collection('comments')
.add({
author: {
'_id': this.currentUser.uid,
'firstname': this.currentUser.displayName ? this.currentUser.displayName : this.currentUser.email
},
comment: comment.comment,
createdAt: firebase.firestore.FieldValue.serverTimestamp(),
updatedAt: firebase.firestore.FieldValue.serverTimestamp()
});
} else {
return Promise.reject(new Error('LogIn to Continue!'));
}
}
Это в сервисах, но я получаю сообщение об ошибке при отправке комментария.И в моем компоненте, когда я отправляю консоль, он дает мне значение формы и значение идентификатора блога.
onSubmit() {
console.log(this.commentForm.value);
console.log(this.blog._id);
this.blogservices.postComment(this.blog._id, this.commentForm.value)
.then(() => {
this.blogservices.getComments(this.blog._id)
.subscribe(comments => this.blog.comments = comments);
});
}
Я не могу разместить его там, где я получаю
Ошибка ERCOR Uncaught (в обещании) FirebaseError [code = access-denied]: отсутствует или недостаточно разрешений FirebaseError: отсутствует или недостаточно разрешений.
И это мои правила пожарного депо, которые я считаю верными, потому что запрос должен совпадать с uid пользователя и ресурсом, приложенным к данным, подлежащим отправке.
match /comments/{comment}{
allow delete: if request.data.user_uid == request.auth.uid;
allow write: if request.resource.data.user_uid == request.auth.uid;
allow read;
}
Я пыталсяотправка напрямую без информации о пользователе, но с той же ошибкой.