Я пытаюсь сделать 2 запроса к базе данных Firebase RealTime. Сначала я получаю идентификатор, а затем со вторым запросом получаю сообщение с таким идентификатором.
Я попытался заменить первый Promise на await, но он не сработал. Мне удалось заставить код работать с Обещанием в другом Обещании, но я не понимаю, почему он не работает так, и я часто сталкивался с этой досадной ошибкой, так что пришло время понять, почему это происходит и как исправить это (не избежать!)
exports.getFirstPosts = functions.https.onRequest((req, res) => {
let dbRef = admin.database().ref();
return dbRef.child('/regions/').child(req.query.region)
.limitToFirst(1)
.once('value')
.then((snapshot) => {
let data = snapshot.val();
let message = "empty"
if(data === null || data === undefined) {
message = "No-posts-in-region"
}else{
message = "success"
}
console.log(data);
let postsIdsArray = [];
for(let id in data){
postsIdsArray.push(id);
console.log('x',id);
}
let postData = await dbRef.child('/posts').child(postsIdsArray[0]).once('value')
return res.status(200).json({
version: "check if data is null 2post update",
message: message,
data: data,
arr: postsIdsArray,
post: snapshot.val(),
});
});
});
Это ошибка, которую я получаю:
C:\Users\marius\Desktop\CloudF\functions\index.js
77:34 error Parsing error: Unexpected token dbRef
✖ 1 problem (1 error, 0 warnings)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! functions@ lint: `eslint .`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the functions@ lint script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\marius\AppData\Roaming\npm-cache\_logs\2019-04-26T16_25_42_235Z-debug.log
events.js:183
throw er; // Unhandled 'error' event
^
Error: spawn npm --prefix "%RESOURCE_DIR%" run lint ENOENT
at notFoundError (C:\Users\marius\AppData\Roaming\nvm\v8.12.0\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:6:26)
at verifyENOENT (C:\Users\marius\AppData\Roaming\nvm\v8.12.0\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:40:16)
at ChildProcess.cp.emit (C:\Users\marius\AppData\Roaming\nvm\v8.12.0\node_modules\firebase-tools\node_modules\cross-env\node_modules\cross-spawn\lib\enoent.js:27:25)
at Process.ChildProcess._handle.onexit (internal/child_process.js:198:12)
Error: functions predeploy error: Command terminated with non-zero exit code1
Having trouble? Try firebase deploy --help