这是我的代码:
using Android.App;
using Android.OS;
using Android.Support.V7.App;
using Android.Runtime;
using Android.Widget;
using firestore;
using Firebase.Firestore;
using Firebase;
using Java.Util;
namespace firestore
{
[Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
public class MainActivity : AppCompatActivity
{
EditText phone;
EditText password;
Button save;
FirebaseFirestore database;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
// Set our view from the "main" layout resource
SetContentView(Resource.Layout.activity_main);
phone = (EditText)FindViewById(Resource.Id.phone);
password = (EditText)FindViewById(Resource.Id.password);
save= (Button)FindViewById(Resource.Id.save);
save.Click += Save_Click;
database = GetDatabase();
}
private void Save_Click(object sender, System.EventArgs e)
{
HashMap map = new HashMap();
map.Put("phone",phone.Text);
map.Put("password",password.Text);
DocumentReference docref = database.Collection("users").Document();
docref.Set(map);
}
public FirebaseFirestore GetDatabase()
{
FirebaseFirestore database;
var options = new FirebaseOptions.Builder()
.SetProjectId("mohammed-682b7")
.SetApplicationId("mohammed-682b7")
.SetApiKey("AIzaSyC_atciyoeH0BMCD3rTTHPGtZa4EU1fu7k")
.SetDatabaseUrl("https://mohammed-682b7.firebaseio.com")
.SetStorageBucket("mohammed-682b7.appspot.com")
.Build();
var app = FirebaseApp.InitializeApp(this, options);
database = FirebaseFirestore.GetInstance(app);
return database;
}
}
我收到此错误:
未处理的例外:Java.Lang.RuntimeException:发生
<Timeout exceeded getting exception details>
我遵循了此链接中的解释:https://www.youtube.com/watch?v=mneY6H0zMNE
这是输出:在java.util.concurrent.FutureTask.run(FutureTask.java:266)12-16 20:08:22.896 E / AndroidRuntime(10311):at java.util.concurrent.ScheduledThreadPoolExecutor $ ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:301)12-16 20:08:22.896 E / AndroidRuntime(10311):在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)12-16 20:08:22.896 E / AndroidRuntime(10311):at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:636)12-16 20:08:22.896 E / AndroidRuntime(10311):位于com.google.android.gms.internal.zzejp $ zza.run(未知来源:7)12-16 20:08:22.896 E / AndroidRuntime(10311):at java.lang.Thread.run(Thread.java:764)12-16 20:08:22.896 E / AndroidRuntime(10311):由以下原因引起:java.lang.ClassNotFoundException:在路径:DexPathList [[zip file“ /下未找到类” com.google.common.base.Preconditions“ data / app / firestore.firestore-h-EYnpx7ZY1EvLUwpnKzoQ == / base.apk“],nativeLibraryDirectories = [/ data / app / firestore.firestore-h-EYnpx7ZY1EvLUwpnKzoQ == / lib / x86,/data/app/firestore.firestore -h-EYnpx7ZY1EvLUwpnKzoQ == / base.apk!/ lib / x86,/ system / lib,/ vendor / lib]]12-16 20:08:22.896 E / AndroidRuntime(10311):在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)12-16 20:08:22.896 E / AndroidRuntime(10311):位于java.lang.ClassLoader.loadClass(ClassLoader.java:379)12-16 20:08:22.896 E / AndroidRuntime(10311):at java.lang.ClassLoader.loadClass(ClassLoader.java:312)12-16 20:08:22.896 E / AndroidRuntime(10311):...还有20个未处理的异常:
Java.Lang.RuntimeException:
线程完成:#5线程0x5已退出,代码为0(0x0)。线程完成:#7线程0x7已退出,代码为0(0x0)。线程完成:#4线程0x4已退出,代码为0(0x0)。线程完成:#6线程0x6已退出,代码为0(0x0)。
我建议您使用运行时数据库来实现这一目标,这里正在运行GIF。
这是我的有关将数据保存到数据库的代码。
private void Save_Click(object sender, System.EventArgs e)
{
string firebaseURL = "https://fir-databasedemo-62a72.firebaseio.com/";
var mDatabase = FirebaseDatabase.GetInstance(firebaseURL).GetReference("fir-databasedemo-62a72");
TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
string s= Convert.ToInt64(ts.TotalMilliseconds).ToString();
string username = "User" + s;
var resp = mDatabase.Child(username);
var resp2= resp.SetValue("Phone");
var resp3 = resp.SetValue("Password");
resp = mDatabase.Child(username + "/Phone");
resp.SetValue(phone.Text);
resp = mDatabase.Child(username+"/Password");
resp.SetValue(password.Text);
}