Firebase Admin SDK for Go가 정식 출시되었습니다. 기존에 지원 중인 자바, Python 및 Node.js외에 Admin SDK 제품군에 추가되는 네 번째 프로그래밍 언어입니다. 애플리케이션 개발자는 Firebase Admin SDK를 통해 신뢰할 수 있는 환경에서 프로그래밍을 통해 Firebase 서비스에 액세스할 수 있습니다. Firebase Admin SDK는 Firebase client SDK를 보완하여 최종 사용자가 자신의 웹브라우저와 휴대기기에서 Firebase에 액세스할 수 있도록 지원합니다. Firebase Admin SDK for Go의 초기 릴리스에서는 맞춤 토큰(Custom Token) 작성 및 ID 토큰 인증과 같은 몇 가지 Firebase 인증 기능이 함께 제공됩니다.
Admin SDK for Go 초기화
다른 Firebase Admin SDK와 유사하게 Go Admin SDK는 다양한 인증 자격 증명과 클라이언트 옵션을 사용하여 초기화할 수 있습니다. 다음 코드 스니펫은 Firebase 콘솔 또는 Google Cloud 콘솔에서 얻은 서비스 계정 자격 증명을 사용하여 SDK를 초기화하는 방법을 보여 줍니다.
import (
"golang.org/x/net/context"
firebase "firebase.google.com/go"
"google.golang.org/api/option"
)
opt := option.WithCredentialsFile("path/to/key.json")
app, err := firebase.NewApp(context.Background(), nil, opt)
Google App Engine 또는 Google Compute Engine과 같은 Google 인프라에서 코드를 실행하는 경우에는 SDK가 해당 환경에서 애플리케이션 기본 자격 증명을 자동으로 검색할 수 있습니다. 이 경우에는 Go Admin SDK를 초기화할 때 자격 증명의 명시적인 지정이 필요 없습니다.
import (
"golang.org/x/net/context"
firebase "firebase.google.com/go"
)
app, err := firebase.NewApp(context.Background(), nil)
맞춤 토큰 작성 및 ID 토큰 인증
Firebase Admin SDK for Go의 초기 릴리스에서는
맞춤 토큰 작성 및
Firebase ID 토큰 인증이 지원됩니다. 맞춤 토큰 작성 기능을 통해 자체적인 사용자 저장소 또는 인증 메커니즘을 사용하여 사용자를 인증할 수 있습니다.
client, err := app.Auth()
if err != nil {
return err
}
claims := map[string]interface{}{
"premium": true,
"package": "gold",
}
token, err := client.CustomToken("some-uid", claims)
그 결과로 생성되는 맞춤 토큰은 클라이언트 기기로 전송될 수 있으며, 그러면 클라이언트 기기에서 Firebase client SDK를 사용하여
인증 흐름을 초기화하는 데 이 토큰을 활용할 수 있습니다. 반면에 ID 토큰 인증은 서버에서 현재 로그인된 사용자를 보안 차원에서 식별하는 데 도움이 됩니다.
client, err := app.Auth()
if err != nil {
return err
}
decoded, err := client.VerifyIDToken(idToken)
uid := decoded.UID
Firebase Admin SDK for Go를 사용하는 방법에 대한 자세한 내용은
Admin SDK 설정 가이드를 참조하세요.
다음 단계
사용자 관리 및 Firebase 클라우드 메시징과 같은 기타 유용한 API를 구현하여 Go Admin SDK의 기능을 더 확장할 계획입니다. 또한, 이 SDK는 오픈소스로 제공됩니다. 따라서
Github 리포지토리를 살펴보고, 문제를 보고하고 끌어오기 요청을 보내 개발 프로세스에 참여해 보시기 바랍니다. 모든 Golang 열혈 개발자 여러분들, Firebase로 즐겁게 코딩하시길 바랄게요!