我在服务中有一个简单的集合引用
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.itineraryCollection = firebase
.firestore()
.collection(`itinerary/${user.uid}/itineraryList`);
}
});
Run Code Online (Sandbox Code Playgroud)
我正在调用此服务 OnInit
ngOnInit() {
this.loggedInUser = firebase.auth().currentUser;
this.dataSvc.getItineraries()
.get()
.then( itineraryListSnapshot => {
this.itineraries = [];
itineraryListSnapshot.forEach(snap => {
this.itineraries.push({
id: snap.id,
activities: snap.data().activities,
destination: snap.data().destination,
startDate: snap.data().startDate,
endDate: snap.data().endDate,
tripDetails: snap.data().tripDetails,
userId: snap.data().userId
});
});
});
// this.itineraries = this.dataSvc.getUserItinerary();
console.log('logged in user add itin page', this.itineraries);
}
Run Code Online (Sandbox Code Playgroud)
但是我在页面初始化时不断收到以下错误:
vendor.js:49548 ERROR Error: Uncaught (in promise): FirebaseError: [code=permission-denied]: Missing or insufficient permissions.
FirebaseError: Missing or insufficient …
Run Code Online (Sandbox Code Playgroud)firebase typescript firebase-security google-cloud-firestore
我已经在这里多次看到这个答案,但它对我不起作用。我需要从数组中删除一个项目,但索引继续返回 -1。
deleteItinerary(id: string) {
this.dataSvc.removeItinerary(id);
console.log('id', id);
const index = this.itineraries.indexOf(id);
console.log('array', this.itineraries);
console.log('index', index);
}
Run Code Online (Sandbox Code Playgroud)
我在这里看到了这个答案,我们应该使用 array.indexOf()。我正在做一个控制台日志来验证 id 是否正确并且它存在于数组中,但索引一直给我-1。
感谢您的帮助