나는 firebase와 NoSQL을 보았을뿐입니다. 그리고 어플리케이션의 최상의 사용을 위해 데이터 구조화 문제를 보았습니다.Firebase 데이터베이스 구조 제안
4 명이 즐길 수있는 (테이블 축구) 게임 결과를 저장하는 응용 프로그램이 있습니다. 각 플레이어는 자신의 평점을 가지고 있으며 각 게임 후에 평점이 다시 계산됩니다. 또한 개별 게임 결과 (목표, 자신의 목표)와 플레이어 위치가 각 게임에 저장됩니다. 앱에 2 가지 기본보기가 있습니다. 게임보기에는 게임 결과를 삽입하고 평점보기에는 평점과 평균 목표로 점수가 매겨진 점수 판이 있습니다. 이와
// players
{
"playerID": {
firstName: string,
lastName: string,
ratings: {
overall: { mu: string, number: string }
}
}
}
// games
{
"gameID": {
participants: {
"HOME_DEF": {
playerID: string,
firstName: string,
lastName: string,
ratings: { overall: { mu: string, number: string } }
adjustedRatings: { overall: { mu: string, number: string } }
goals: number,
ownGoals: number,
},
"AWAY_DEF": { ... },
"HOME_OFF": { ... },
"AWAY_OFF": { ... },
}
time: elapsedTime,
}
}
내가 개체로 모든 게임을 저장하고 게임에서 onCreate 이벤트에 클라우드 기능과 함께 등급을 다시 계산하고있다 : 나는 다음과 같은 구조를 가지고있는 순간
. onCreate 이벤트 중에 읽은 것에서 다른 노드 (플레이어 등)에 액세스 할 수 없으므로 플레이어 등급을 업데이트 할 수 없습니다.
나는이 개 질문이 :
내가 쉽게 선수 평가에 대한 데이터를 업데이트 할 수 있으며,이 뷰에 사용할 그래서이 스키마를 조정해야 할 것입니다 무엇?
점수를받은 평균 목표를 어떻게 계산하고 플레이어 개체에 저장할 수 있습니까? 이와
// The Firebase Admin SDK to access the Firebase Realtime Database. const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase);
, 당신은 같은과
players/ratings
노드에 액세스 할 수 있습니다 :
정교한 대답에 감사드립니다. – Nick