기지를 만져보자.. Firebase로 🔥
9063 단어 tutorialwebdevproductivityjava
많은 신생 기업, 사이드 프로젝트 및 빠른 해킹을 위한 꿈의 플랫폼이 되는 Firebase의 많은 측면이 있습니다. Firebase로 대규모로 확장할 수 없다는 말이 아닙니다. 50억 건의 설치를 자랑하는 Google Play 뮤직에 문의해 보세요.
Firebase가 제공해야 하는 기술적 깊이를 손상시키지 않고 몇 가지 기능만 언급하면 다음과 같습니다.
요점은 Firebase가 개발을 시작할 수 있는 환상적인 리소스라는 것입니다 🚀
너무 리얼하다.. 아니면 너무 리얼하다
대학 친구 몇 명이 개발 중인 앱 아이디어에 대해 이야기하던 중 Firebase를 처음 알게 되었습니다. 그들에게 내 첫 번째 질문은 "IAM을(를) 어떻게 처리할 건가요?"였습니다. 이전 경험을 통해 전체 IAM 시스템이 새로운 개발 벤처에 부담이 될 수 있음을 알고 있습니다. 정교한 암호화 공격의 시대에 소금에 절인 해시와 개인 정보 보호 문제는 GDPR 기침을 기침합니다. 최소한으로 말하는 것은 골치 아픈 일입니다. 나는 다른 앱이 이 문제를 해결하는 방법, 특히 손쉬운 소셜 로그인을 사용하는 방법을 검색했고 Firebase 인증이 답이었습니다.
접선에서 약간, 이것은 클라우드 기술이 매우 강력해짐에 따라 개발자가 실제로 즐기는 일, 즉 코드를 소진하는 일을 할 수 있는 권한을 부여하는 것입니다 🔥. 보안 패치로 데이터베이스 또는 UNIX 상자를 유지 관리하거나 다른 기술을 실험하기 전에 전체 개발 환경을 설계하는 것에 대해 걱정해야 하는 시대는 지났습니다.
혁신은 올바른 질문을 할 수 있는 사람들이 대답할 수 있는 최고의 기회를 가질 때 가장 자주 발생합니다.
Firebase 및 IAM으로 돌아가서 Firebase는 Facebook, Twitter, Apple 등을 포함한 다양한 옵션으로 사용자 인증에 대한 간단한 진입점을 제공합니다.
작성 시점의 전체 인증 제공자 목록
그렇다면 이 모든 것이 어떻게 결합됩니까?
Firebase에는 사용자가 위의 활성화된 공급자 중 하나를 사용하여 자격 증명을 입력하고 성공할 경우 Firebase 토큰을 반환할 수 있는 클라이언트 측 라이브러리가 있습니다. 이 Firebase 토큰은 JWT입니다. 이 토큰을 사용하여 백엔드에 대한 호출에서 사용자를 식별할 수 있습니다.
참고 : Firebase를 사용하기 위한 전제 조건은 계정에 가입하는 것입니다.
이제 기본 서버 측 언어로 Firebase SDK를 설치해야 합니다. Node.JS, Java, Python, Go 및 C# 중에서 선택할 수 있습니다. 선호하는 언어가 여기에 없으면 항상 설명된 구현을 사용할 수 있습니다here.
Java에서 응용 프로그램을 초기화하는 것은 다음과 같습니다.
/**
* Initialises Firebase connection.
*
* @throws IllegalStateException if application can't be initialised.
*/
@PostConstruct
public void initialiseFirebase() {
try {
FileInputStream serviceAccount = new FileInputStream(firebaseCredentials);
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredentials(GoogleCredentials.fromStream(serviceAccount))
.setDatabaseUrl("https://****.firebaseio.com").build();
FirebaseApp.initializeApp(options);
} catch (IOException e) {
throw new IllegalStateException("Unable to initalise Firebase Application", e);
}
}
메이븐 종속성:
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>6.12.2</version>
</dependency>
provided methods 을 사용하여 토큰을 전달할 수 있으며 구조 및 만료 등을 확인할 수 있습니다. 토큰을 디코딩하고 사용자의 UUID를 검색하고 필요한 경우 추가 정보를 호출할 수 있습니다. 예를 들어 사용자의 이메일 주소는 아래와 같습니다. 이 모든 것이 SDK를 통해 이루어집니다!
/**
* If the provided ID token has the correct format, is not expired, and is
* properly signed, the method returns the decoded UUID.
*
* @param idToken
* @return {@code String} Firebase UUID
*/
public String getFirebaseDecodedUid(String idToken) {
try {
FirebaseToken decodedToken = getFirebaseToken(idToken);
return decodedToken.getUid();
} catch (IllegalArgumentException e) {
throw new NotAuthorizedException("Unable to read authentication client side token.", e);
}
}
/**
* Returns email of a user by their Firebase UUID.
*
* @param firebaseId
* @return {@code String}
*/
public String getUser(String firebaseId) {
try {
return FirebaseAuth.getInstance().getUser(firebaseId).getEmail();
} catch (FirebaseAuthException e) {
throw new InternalServerErrorException("Unable to return user", e);
}
}
번거로움이 거의 없이 사용자를 인증하는 방법을 성공적으로 찾았으므로 애플리케이션 로직 작성에 집중할 수 있습니다.
Firebase에는 탐색할 수 있는 다양한 기능이 있습니다. 이는 Firebase가 얼마나 강력한 플랫폼이 될 수 있는지에 대한 간단한 정보입니다.
사용자가 인증되면 다음 논리적 단계는 올바른 백엔드 호출을 구별하고 권한을 부여하는 방법입니다. 그것은 또 다른 날과 또 다른 블로그 게시물을 위한 것입니다.
Reference
이 문제에 관하여(기지를 만져보자.. Firebase로 🔥), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/azaidi93/let-s-touch-base-with-firebase-1i96텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)