在 Go 中使用 Firebase Admin SDK 时,我遇到了无法在实时数据库上进行身份验证的问题。
这是我启动数据库连接的方式:
option := option.WithTokenSource(tokenSource)
app, err := firebase.NewApp(context.Background(), &firebase.Config{
DatabaseURL: "https://databaseName.europe-west1.firebasedatabase.app/",
ProjectID: "projectId",
}, option)
client, err := app.Database(context.Background())
The是一个返回 atokenSource的习惯。我已经覆盖了该方法以满足我的需求,即:首先从自定义端点获取一个,然后当它过期时,从端点刷新它。TokenSourceReuseTokenSourceToken()IdTokenIdTokensecuretoken.googleapis.com
但是使用这种方法,每当我尝试访问我的实时数据库时,我都会收到以下错误:
http error status: 401; reason: Unauthorized request.
即使数据库的规则完全打开(读/写=真)。
使用的令牌也是正确的,因为我可以在 HTTP 请求中使用它,唯一的调整是我必须使用?auth=IDTOKEN而不是?access_token=TOKEN(请参阅此处)
TLDR:如何使用 Go Admin SDK 中的 IdToken 向实时数据库验证服务。(只是补充一点,我可以使用相同的方法和令牌对 Firestore 数据库上的服务进行身份验证)。
谢谢 !
慕雪6442864
相关分类