Я хочу определить видимость определенных элементов на основе userType в TypeScript, который вошел в систему. Однако, когда я пытаюсь определить страницы, я получаю ошибку времени выполнения, которая не может установить страницы свойств неопределенного.
Пожалуйста, помогите мне, пожалуйста.
Мой код:
export class MenuPage implements OnInit {
pages : [];
value="";
definepages(){
var pages=[];
var usersRef = firebase.database().ref().child('Users');
var userEmail = "";
var userType = "";
firebase.auth().onAuthStateChanged(function (user) {
if (user) {
console.log(user.email);
userEmail = user.email;
//userType = user.userType;
} else {
// No user is signed in.
}
});
var counter = 0;
var currentUserData = {};
usersRef.once("value", function (snapshot) {
pages=[];
snapshot.forEach(function (c) {
if (userEmail == c.val().email) {
currentUserData["email"] = userEmail;
currentUserData["entity"] = c.val().userType;
if( currentUserData["entity"]== 'Admin')
{
this.pages = [
{
title:'Home',
url:'/menu/home',
display:'false',
icon:'home'
},
{
title:'Register',
url:'/menu/register',
display:'true',
icon:'create'
},
{
title:'Login',
url:'/menu/login',
display:'true',
icon:'log-in'
},
{
title:'Shop by Brand',
url:'/menu/brand',
display:'true',
icon:'log-in'
},
{
title:'Shop by Category',
url:'/menu/category',
display:'true',
icon:'log-in'
},
];
}
else if(currentUserData["entity"]== 'Sakhi')
{
this.pages=[
{
title:'My Inventory',
url:'/menu/my-inventory',
display:'true',
icon:'log-in'
},
{
title:'Contact-Us',
url:'/menu/contact',
display:'true',
icon:'contacts'
},
];
console.log("hello");
}
}//check user email details
});
}
);
}
constructor() { this.pages=[]}
ngOnInit() {
this.definepages();
}
}
Я получаю следующую ошибку:
ОШИБКА TypeError: Невозможно установить свойство 'pages' из неопределенного
на menu.page.ts: 40.