微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Firestore:如何设置GOOGLE_APPLICATION_CREDENTIALS?

如何解决Firestore:如何设置GOOGLE_APPLICATION_CREDENTIALS?

我正在遵循official Google docs来从Android应用(Xamarin)访问Firestore。每次尝试访问Firestore时,都会出现以下异常:

system.invalidOperationException:应用程序认凭据不可用。如果它们在Google Compute Engine中运行,则可用。否则,必须定义环境变量GOOGLE_APPLICATION_CREDENTIALS,指向指向定义凭据的文件。有关更多信息,请参见https://developers.google.com/accounts/docs/application-default-credentials/

非常明显。我必须设置环境变量。因此,我运行了以下PowerShell命令:

$env:GOOGLE_APPLICATION_CREDENTIALS="C:/Foo/Bar/google-services.json"

那没有用。也许json文件必须在Android设备上。我将json文件设置为“ Embedded Content”,然后在访问数据库之前(使用System,使用System.IO)将以下行插入到应用程序中:

Environment.SetEnvironmentvariable("GOOGLE_APPLICATION_CREDENTIALS",Path.Combine(Environment.CurrentDirectory,@"../../Firestore/google-services.json"));

这将异常更改为“路径无效”。如何获取json文件的路径?这是我的层次结构:

Xamarin Project solution explorer hierarchy showing the location of google-services.json

解决方法

如果您的方法不起作用:

根据Getting Started with Authentication,您可以使用命令提示符进行设置

set GOOGLE_APPLICATION_CREDENTIALS=[PATH]

您可以尝试此方法

开始-> 此Pc (在我的电脑上单击鼠标右键)-> 属性->在左侧面板上,您将找到

高级系统设置-> 环境变量

然后为#UserName#系统变量添加用户变量:

单击新建,它将弹出并提供

变量名: GOOGLE_APPLICATION_CREDENTIALS

变量值::仅提供Json File的路径。它将自动设置为默认应用。

您可以使用给定的按钮选择文件:

enter image description here

即使在Github问题Jon Skeet中,他的answer解释

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。