0

firebase https 함수에서 실시간 데이터베이스에 대한 쿼리를 실행하려고하는데 작동하지 않습니다. 여기 내 코드는firebase https 함수의 쿼리가 작동하지 않습니다.

exports.fetchPost = functions.https.onRequest((req, res) => { 
    if (req.method === 'PUT' || req.method === 'GET') { 
    res.status(403).send('Forbidden!') 
    } 
    let postId = JSON.stringify(req.query.postId) || 
    JSON.stringify(req.body.postId) 
    cors(req, res,() => { 
    admin.database().ref('items') 
     .child(postId) 
     .once('value', s => { 
      console.log(s.val(), s) 
      res.status(200).send(s.val()) 
     }) 
     .catch(e => res.status(500).send(e)) 
    }) 
}) 

로그를 확인했습니다. s.val()은 null을 반환하고 s은 사용할 수없는 firebase 객체를 제공합니다.

Firebase function log

또한, 당신을 감사 요청에 대해 다음 반환

Error response being returned from the request

어떤 도움이 크게 감사합니다 보내 얻고있다.

답변

0
admin.database().ref('items') 
    .once('value', data => data.forEach(s => { 
     s.key === postId ? console.log('success!') : console.log('not 
     found'); 
    })) 

이 부분을 파이어베이스에서만 처리하십시오. 테스트를 거쳐 작동하지 않으면 항목 저장 방법을 보여줄 수 있습니까?

+0

답장을 보내 주시면 감사하겠습니다. 나는 여전히 파이어 폭스를 처음 사용하고 있으며, 당분간 파스 서버를 사용해 왔습니다. 내가 의도 한 것은 단 하나의 항목을 얻는 것입니다. –

+0

테스트를 마쳤습니다. 이전과 같은 오류. 게다가 코드에 오류가 있었고 세 번째 연산자의 else 부분을 지정하지 않았습니다. 그래서 if 문을 사용했습니다. –

+0

네, 그 부분을 잊어 버렸습니다. 답을 더 명확하게 편집했습니다. 도움이되기를 바랍니다. –

관련 문제