작성
·
66
·
수정됨
0
안녕하세요. 저는 createCustomToken 에러 로그가 이렇게 뜹니다. 분명 처음부터 끝까지 영상 그대로 했는데 왜그런걸까요? user collection등도 다 활성화 되어있는 상태입니다.
createCustomToken
jdu0e5j7y993
TypeError: Cannot read properties of undefined (reading 'user')
at /workspace/create_custom_token.js:21:21
at /workspace/node_modules/firebase-functions/lib/common/onInit.js:33:16
at AsyncLocalStorage.run (node:async_hooks:338:14)
at /workspace/node_modules/firebase-functions/lib/v2/trace.js:18:37
at cloudFunction (/workspace/node_modules/firebase-functions/lib/v1/providers/https.js:53:78)
at /layers/google.nodejs.functions-framework/functions-framework/node_modules/@google-cloud/functions-framework/build/src/function_wrappers.js💯29
at process.processTicksAndRejections (node:internal/process/task_queues:77:11)
GPT한테 물어보면,
이 Cloud Function은 onRequest를 사용하고 있고, 데이터를 request.body.data로 받도록 작성되어 있습니다. 그런데 실제 요청에서는 request.body에 직접 user 객체가 있거나, data가 빠져있을 가능성이 높습니다. 라고 합니다.
GPT가 수정해주는 코드나 밑에 인프런에의 수정코드로 다 해도 DEPLOY부터 실패하네요~~도와주실 수 있으실까요?
답변 2
0
안녕하세요.
받은 데이터를 로그 출력해보면 뭔가가 나올 것 같은데요.
createCustomToken 함수 초반에 로그 찍는 부분이 있습니다.
functions.logger.log(
`# createUser request: ${JSON.stringify(request.body)}`,
);
firebase console 에서 이 부분이 어떻게 나왔는지 공유 가능할까요?
로그를 공유해주신다면 도와드리기 수월할 것 같습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. slslsl님, createCustomToken
함수에서 발생한 오류와 관련하여 도움을 드리겠습니다.
해당 오류는 createCustomToken
함수 내에서 요청(request) 객체의 구조와 관련된 문제로 인해 발생하는 것 같습니다. 이 문제는 Cloud Function에서 request.body.data
에 접근하려고 할 때, 실제로 data
객체가 존재하지 않아서 발생합니다.
이 문제를 해결하기 위해 다음 단계를 시도해 보세요:
Cloud Function 코드 검토:
createCustomToken
함수에서 request.body.data
가 아닌, request.body
또는 request.body.user
형태로 요청을 받을 수 있도록 코드를 수정해 보세요.
예를 들어, 아래와 같이 수정할 수 있습니다:
exports.createCustomToken = functions.https.onRequest(async (request, response) => {
const user = request.body.user; // request.body.data 대신 request.body.user 사용
if (!user) {
return response.status(400).send('User data is required.');
}
// 사용자 토큰 생성 로직
});
request.body.user
가 실제로 요청에서 전달되는지를 확인하세요. 필요한 경우 로그를 추가하여 전달된 데이터 구조를 확인하는 것도 유용합니다.
테스트 요청 검토:
{
"user": {
"uid": "user123",
"email": "user@example.com"
}
}
로그 추가:
아래 링크에서 다른 사용자가 유사한 문제를 해결한 경험을 확인할 수 있습니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.