Я делаю игру, в которой мне нужно POI на карте.Для каждой игры я создаю 10000 POI.Каждый раз, когда я создаю игру, мой сервер узлов создает 10000 POI и публикует их в базе данных Firebase.(10000 - это просто большое число, чтобы показать мою проблему)
Моя проблема в том, что firebase 'js' кэширует все эти объекты, и у меня есть утечка памяти.
Как я могу заставитьFirebase уничтожить свои тайники?Мне не нужны эти данные на стороне nodejs, а только на стороне клиента?
Это функция, которую я использую для ее создания.Я попытался упростить это.
export async function addRandomPois(gameId) {
const numberOfPoiToBeGeneratedPerKM: number = 10000;
const sizeInKm = 2;
const numberOfPoiToBeGenerated = numberOfPoiToBeGeneratedPerKM * sizeInKm;
const gameData = await GameFirebaseRef.get()
const game = gameData.data();
const batches = {0: FirebaseStore.batch()};
let batchNum = 0;
for (var n = 0; n < numberOfPoiToBeGenerated; n++) {
if (n > 0 && n % 500 === 0) {
// batches cannot have more than 500 operation. So I create as much as needed
batches[batchNum]
.commit()
.then(i => delete batches[batchNum]);
batchNum++;
batches[batchNum] = FirebaseStore.batch();
}
const generatedRandomPoint = pointInCircle(game.currentCircle.center, game.nextCircle.size);
const generatedPOI = {
icon: randomIcon(),
position: generatedRandomPoint
}
const ref = firebasePOIREF.doc(guid());
batches[batchNum].set(ref, generatedPOI)
}
return batches[batchNum].commit()
.then(i => console.log(`${gameId} : randomly poi generation terminated`))
}