通过跨平台移动应用程序(xamarin c#)连接到Google cloud firestore

通过跨平台移动应用程序(xamarin c#)连接到Google cloud firestore,c#,google-cloud-firestore,xamarin.android,xamarin.ios,C#,Google Cloud Firestore,Xamarin.android,Xamarin.ios,嗨,我正在尝试将我的c#移动应用程序(Android,iOS)连接到谷歌云firestore数据库。我遇到的问题是,当我试图设置环境变量时,我的应用程序似乎找不到包含服务帐户密钥的json文件的路径,即使我将json文件添加到Android资产文件夹以及主项目中。这是我的代码: string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal)

嗨,我正在尝试将我的c#移动应用程序(Android,iOS)连接到谷歌云firestore数据库。我遇到的问题是,当我试图设置环境变量时,我的应用程序似乎找不到包含服务帐户密钥的json文件的路径,即使我将json文件添加到Android资产文件夹以及主项目中。这是我的代码:

        string path = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "dbfile.json");

        Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", path);

        FirestoreDb newDB = FirestoreDb.Create("projectKey");
但它给了我一个错误:

System.InvalidOperationException异常 Message=从位置/data/user/0/../files/dbfile.json读取凭据文件时出错:找不到文件“/data/user/0/../files/dbfile.json” 请检查环境变量GOOGLE\u APPLICATION\u CREDENTIALS的值


有人知道如何在跨平台移动应用程序中正确获取文件路径吗?

如果您将文件添加到
Android Assets
文件夹中,您应该按照以下方式阅读:

string content;
AssetManager assets = this.Assets; 
using (StreamReader sr = new StreamReader (assets.Open ("your file")))
 {
    content = sr.ReadToEnd ();
 }

您可以参考。

您应该使用内容的生成操作将文件放在Android/iOS项目的根目录中,并使用相对路径,而不是特殊文件夹。@Jason您知道我应该使用哪些内置函数来获取相对路径吗?我不太擅长c#如果它在你的应用包中,路径应该是“file.ext”或“/file.ext”,我仍然会遇到同样的错误。我使用内容的构建操作将json文件添加到根android和iOS项目中,并尝试使用字符串path=path.Combine(Environment.CurrentDirectory,“dbfile.json”)获取路径;字符串path2=Path.Combine(AppDomain.CurrentDomain.BaseDirectory,“test2grow-452ec-3c88d1d6ec8b.json”);但它仍然找不到文件。我是否可以使用共享C#代码设置android和iOS与firebase的连接?我已经将json文件添加到所有项目的根目录中,但是我仍然会遇到相同的错误,因为它找不到该文件。您是否将构建操作设置为embedded resource?