在具有Xamarin Forms
代码共享应用程序的.Net Standard
中,我想为Google Datastore
设置环境变量。这样我就可以通过移动应用与Google Datastore
通信。
以下代码段在console
应用中正常运行,但在尝试创建数据存储区db对象时在Xamarin Forms
中抛出错误。
从位置/DB.json读取凭据文件时出错:找不到文件“ /DB.json” 请检查环境变量GOOGLE_APPLICATION_CREDENTIALS
的值我将 DB.json 放在解决方案的根目录上。
try
{
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", @"DB.json");
var dir = Environment.CurrentDirectory;
// Your Google Cloud Platform project ID.
string projectId = "xamarin-project";
//We are storing movies. So this is a Movie kind.
string kind = "Country";
//Create the datastore db
var db = DatastoreDb.Create(projectId);
// City entity
Entity cityEntities = new Entity
{
Key = db.CreateKeyFactory(kind).CreateKey($"US"),
["CountryCode"] = "US",
["Name"] = "United States"
};
//Lets send the city to the datastore
using (var transction = db.BeginTransaction())
{
transction.Upsert(cityEntities);
transction.Commit();
}
}
catch (Exception ex)
{
await DisplayAlert("Error", ex.Message, "OK");
Console.WriteLine(ex.Message);
}
使用Dependency
读取文件也不起作用。我尝试了.Android
项目。
答案 0 :(得分:0)
如果您希望直接从移动应用程序中使用数据库,建议您改用Cloud Firestore(https://cloud.google.com/firestore/)。它具有显式的安全功能,可以直接从客户端访问数据库。
我认为您要使用上面的代码片段将应用程序中的服务帐户凭据加载到应用程序中,这将使任何用户都可以完全访问数据库。