更新:这是杀死firebase功能的代码。如果我尝试在此代码后几秒钟从firebase下载(等待等待Task.Delay,没有其他代码在运行),它开始发送代码-13000,httpResult = 0异常。之前的相同请求有效。地图有效。
GoogleMapFragment gmf = new GoogleMapFragment(context, this);
FragmentTransaction ft = activity.FragmentManager.BeginTransaction();
ft.Add(mapLayout.Id, gmf, "my_fragment");
ft.Commit();
我想在我使用firebase的同一活动中设置谷歌地图。地图有效,但不知何故它干扰了firebase,它只在创建Google地图之前起作用。有什么想法可以导致这个?
更新2:如果我在初始化谷歌地图之前下载小文件,我可以稍后使用firebase,所以我以一点点方式解决了这个问题,但至少我可以继续工作。在“修复”之后,我在输出中出现以下错误,但无论如何都要下载文件。我必须继续挖掘,现在我希望最坏的情况结束......
error getting token java.util.concurrent.ExecutionException: com.google.firebase.FirebaseApiNotAvailableException: firebase-auth is not linked, please fall back to unauthenticated mode.
旧版问题:
我在这里检查了所有可能的答案,但是没有任何事情让我走向正确。有很明显的输出告诉我出了问题,但我不知道如何解决这个问题。有一个答案in this question,HttpResult = 0的可能原因之一是手机上的谷歌播放版本不够实际。我使用了建议检查的方法,我在手机上安装了 Google Play服务11.5.18 。我已经安装并使用Visual Studio 2015 Xamarin.Firebase.Storage 42.1021.1(10.2.1)。我经常需要清理和重建它,有时它可以工作,但不是这次。在Android属性中我有使用Android版7.1牛轧糖编译。我刚刚创建了firebase帐户,对此不太了解,在谷歌控制台中将其添加到现有项目中(因为我已经使用谷歌地图),填写sha1代码的方式与我对地图的方式相同。添加了google-services.json并在GoogleServiceJson上设置了它的构建操作。我不知道更多的行动。
这是我的代码,我尝试了各种方式下载,上传,但这个似乎是一个很好的例子:
FirebaseApp fba=FirebaseApp.InitializeApp(context);
firebaseStorage = FirebaseStorage.Instance;
firebaseStorageReference = firebaseStorage.GetReferenceFromUrl("gs://alien-chess.appspot.com");
firebaseStorageReference=firebaseStorageReference.Child("settings.dat");
byte[] bytes = new byte[1000];
firebaseStorageReference.PutBytes(bytes).AddOnFailureListener(new FirebaseFailureListener(this));
这是我的清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="AlienChessAndroid.AlienChessAndroid" android:versionCode="1" android:versionName="1.0" android:installLocation="preferExternal">
<uses-sdk android:minSdkVersion="19" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<application android:label="Alien Chess" android:icon="@drawable/Alien" android:largeHeap="true">
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" />
</application>
以下是我认为是输出窗口的重要部分
Failed to retrieve remote module version: V2 version check failed
Local module descriptor class for com.google.android.gms.firebasestorage not found.
Considering local module com.google.android.gms.firebasestorage:0 and remote module com.google.android.gms.firebasestorage:0
NetworkRequestFactoryProxy failed with a RemoteException:
com.google.android.gms.dynamite.DynamiteModule$zza: No acceptable module found. Local version is 0 and remote version is 0.
....
Unable to create a network request from metadata
android.os.RemoteException
....
StorageException has occurred.
An unknown error occurred, please check the HTTP result code and inner exception for server response.
Code: -13000 HttpResult: 0
视觉工作室没有太多c#来源,我无法轻易阅读android studio的建议,因为对于不熟练的程序员来说,它们是完全不同的。
任何想法我应该检查其他什么?