Firebase 웹 응용 프로그램 사용자가 서버에서 프로그래밍 방식으로 Firebase Realtime Database에 액세스 할 수있게 해주는 API를 만들고 싶습니다.Firebase 3를 사용하여 API 만들기
몇 가지 옵션을 살펴 보았지만 앞으로 나아갈 수있는 최상의 방법에 대한 권장 사항을 얻는 것이 좋습니다. 여기에 지금까지 시도한 작업은 다음과 같습니다
이 서비스 계정 사용 - 원래 나는 그들이 중포 기지와 상호 작용하는 자신의 서버에 구성 할 수있는 서비스 계정에 내 응용 프로그램 액세스를 사용자에게 제공에 대한 생각 실시간 데이터베이스. 특정 userId가있는 노드에서만 읽기/쓰기 액세스 만 허용하는 규칙을 설정하여 데이터베이스의 일부분에만 사용자의 액세스를 제한했습니다. 사용자에게 userId에 대한 액세스 권한을 부여하면 사용자가 노드에 글을 쓸 수 있지만 다른 사람에게는 쓸 수 없습니다. 그러나 이것은 사용자들에게 Firebase 서비스 계정에 대한 액세스 권한을 부여하는 것은 매우 안전하지 않으며 이러한 이유 때문에 이것을 실현 가능한 방법으로 할인 한 것으로 생각됩니다.
이메일/비밀번호 REST 인증 - 난 REST Using mail and password to authenticate via the REST API [Firebase]을 통해 중포 기지 인증에 관한이 게시물을 가로 질러왔다. 필자는이 방법을 테스트 해 보았습니다.이 방법을 사용하여 사용자가 전자 메일과 암호를 사용하여 서버에서 프로그래밍 방식으로 로그인하고 위의 방법을 사용하여 토큰을 만든 다음 Firebase에 실시간으로 액세스 할 수있게 할 수 있다고 생각했습니다. 정상 REST 쿼리와 함께 토큰을 사용하는 데이터베이스 - https://firebase.google.com/docs/reference/rest/database/#section-param-auth. 이것이 정상적으로 작동한다고 생각하지만 문서화되지 않은/지원되지 않는 API를 사용하고 있으므로 가능한 경우 피하고 싶습니다.
는 AWS 람다에서 중포 기지 서비스 계정 포장 - 내가 시도한 세 번째 옵션은 AWS 람다 함수에 중포 기지 서비스 계정 노동자 포장 및 사용자가 호출 할 수있는 API를 만들기 위해 AWS API 게이트웨이를 사용되면, 사용자는 요청에 userId를 포함시키고 AWS Lambda에서 실행중인 서비스 계정 작업자는 요청에 대한 유효성 검사를 수행 한 다음 Firebase 실시간 데이터베이스를 업데이트합니다. 이는 기본적으로 옵션 1과 동일하지만 사용자로부터 서비스 계정 자격 증명을 숨겨 안전하다고 생각합니다. 이 접근법의 단점은 Firebase 실시간 데이터베이스 호출과 AWS Lambda/API Gateway 호출에 대해 비용이 청구된다는 것입니다.
최선의 방법으로 조언을 구하거나 내가 고려하지 않은 다른 옵션이 있다면 좋을 것입니다.
I ' 당신이 이것을 어떻게 진행했는지 듣고 싶습니다. 블로그 게시물이나 뭐 썼을 가능성이 있니? – pedalpete