Firebase 기능 - 애플리케이션이 Google 계정에 액세스할 수 있는 권한을 요청하고 있습니다.

버그



Firebase 클라우드 함수를 배포하고 요청을 처리하려고 하는데 "애플리케이션이 Google 계정에 액세스할 수 있는 권한을 요청하고 있습니다."라는 화면이 표시됩니다.

해결책



Google을 검색하면 Cloud Functions가 us-central1 지역에서만 지원된다는 조언을 볼 수 있지만 지금까지 확장되었다고 확신합니다. 이 문제가 발생하는 이유는 모든 것이 어느 지역에 있는지에 대한 불일치와 관련이 있습니다.

클라우드 기능을 정의할 때 지역을 지정해야 합니다.

const main = express();
main.use("/api/v1", app);
main.use(bodyParser.json());
main.use(bodyParser.urlencoded({ extended: false }));
export const creditCards = functions.region("us-east1").https.onRequest(main); 


둘째, 언급한 바와 같이on the docs page here 재작성에서 지역을 지정하지 않으면 소스 코드에서 올바른 지역을 추측하려고 시도하며 알아낼 수 없는 경우 기본값은 us-central1입니다. 재작성에서도 이 지역을 지정해야 합니다.

"hosting": {
    "public": "public",
    "ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
    "rewrites": [
      {
        "source": "/api/v1/**",
        "function": "creditCards", 
        "region": "us-east1"
      }
    ]
  }


두 가지를 모두 수정한 후 로컬 에뮬레이터에서 테스트할 수 있었고 끝점에 도달하면 함수가 성공적으로 응답하는 것을 볼 수 있었습니다.

서로 다른 모든 리소스를 동일한 리전에서 실행하는 것이 필수는 아니지만 대기 시간을 이유로 그렇게 하는 것이 가장 좋습니다. 저는 개인적으로 Cloud Functions와 Firestore를 같은 지역에 유지합니다.

좋은 웹페이지 즐겨찾기