无法使用服务帐户连接到编辑器中的实时数据库

时间:2017-11-12 16:58:27

标签: firebase unity3d firebase-realtime-database

使用Unity Firebase SDK 4.1.0如果我禁用身份验证,我可以连接到Unity Editor中的实时数据库。

{
  "rules": {
    ".read": true,
    ".write": true
  }
}

在客户端:

FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://xxx.firebaseio.com");
FirebaseDatabase database = FirebaseDatabase.DefaultInstance;
DatabaseReference reference = database.GetReference("key");
etc.

这一点工作正常,直到我尝试使用服务帐户(这样我才能启用身份验证,尽管我在使用服务帐户时禁用了身份验证时得到相同的结果)。服务帐户在IAM设置中具有项目编辑器角色。

更新了客户端:

FirebaseApp.DefaultInstance.SetEditorDatabaseUrl("https://xxx.firebaseio.com");
FirebaseApp.DefaultInstance.SetEditorP12FileName("p12filename.p12");
FirebaseApp.DefaultInstance.SetEditorServiceAccountEmail("username@xxx.iam.gserviceaccount.com");
FirebaseApp.DefaultInstance.SetEditorP12Password("notasecret");
FirebaseDatabase database = FirebaseDatabase.DefaultInstance;
DatabaseReference reference = database.GetReference("key");
etc.

加载文件时没有错误,但是在获取数据库时,插件似乎陷入了身份验证循环,我看到控制台每隔几秒就会重复一次(启用了详细的日志记录):

Sending OAuth request to https://accounts.google.com/o/oauth2/token
Requesting https://accounts.google.com/o/oauth2/token
Waiting for result of https://accounts.google.com/o/oauth2/token
About to send message to POST -> https://accounts.google.com/o/oauth2/token
CONTENT-TYPE:application/x-www-form-urlencoded
body size:793
OAuth request to https://accounts.google.com/o/oauth2/token completed with code 200
OAuth request to https://accounts.google.com/o/oauth2/token completed with msg {
  "access_token" : "yyy",
  "expires_in" : 3600,
  "token_type" : "Bearer"
}

我认为这是一个错误,但我想确保我没有做错事。

0 个答案:

没有答案