Как получить данные JSON из firebase, а затем использовать их в angular 6, firebase вернуть данные с тегом value
Я использую функции Firebase для получения данных из БД, вот как я это делаю,
exports.getTopPlayers = (request,response)=> {
SavePlayers(function(data,err){
if(err) console.log(err);
response.header('Access-Control-Allow-Origin', '*');
response.header(
'Access-Control-Allow-Headers',
'Origin, X-Requested-With, Content-Type, Accept'
);
const dbRef = admin.database().ref().child('topplayers/-LISMykRqLrVcc7xrK60');
dbRef.on('value', snap => {
var dbPlayer = snap.val();
response.send(dbPlayer);
});
});
Затем я использую его на моем сайте, встроенном в угловую 6
getTopPlayers() {
return this.http.get(this.topPlayerURL);
}
Это данные в следующем формате,
{value: "[{"name":"WHYALWAYSME","tag":"9P08LYLL","rank":1,"…na":"League 8","arenaID":20,"trophyLimit":6100}}]"}
Я хочу избавиться от этого тега значения. Как я могу? Когда я пытаюсь зацикливаться на этом, используя
ngFor (*ngFor="let tp of topPlayer$) возвращает ошибку, цикл не может [объект, объект]
Я хочу данные в следующем формате,
[
{
name: "Leslie",
tag: "RPP89PVY",
rank: 1,
previousRank: 3,
expLevel: 13,
trophies: 6361,
donationsDelta: null,
clan: {
tag: "9CU2PQ2J",
name: "不正经的养老院",
badge: {
name: "Cherry_Blossom_04",
category: "01_Symbol",
id: 16000131,
image: "https://royaleapi.github.io/cr-api-assets/badges/Cherry_Blossom_04.png"
}
},
arena: {
name: "Grand Champion",
arena: "League 8",
arenaID: 20,
trophyLimit: 6100
}
},
1 ответ
Решение
Я нашел решение: В угловом методе init компонента я сделал следующее: Вызов службы и чтение данных в строковом массиве.
topPlayer$: string[];
ngOnInit() {
this.topPlayerSrvice.getTopPlayers()
.subscribe(response => {
let topPlayer: string[];
topPlayer = response.json();
this.topPlayer$ = JSON.parse(topPlayer['value']);
});
}