【问题标题】:I cant retrieve data from Firebase to Xamarin.Android using FireSharp我无法使用 FireSharp 将数据从 Firebase 检索到 Xamarin.Android
【发布时间】:2019-02-09 13:47:15
【问题描述】:

我正在使用 firesharp,我尝试在我的移动应用程序中检索数据,但是当我尝试它时,应用程序在显示文本之前在启动时崩溃。有什么办法我做错了吗?或者只是 firesharp 不应该用于 Xamarin。 我已经使用具有插入和检索功能的程序做到了这一点,但在这里我只想检索然后插入

主活动:

 using Android.App;
    using Android.OS;
    using Android.Support.V7.App;
    using Android.Runtime;
    using Android.Widget;
    using FireSharp.Config;
    using FireSharp.Interfaces;
    using FireSharp.Response;
    using System.Threading;
    using System;

    namespace Quiz__
    {
        [Activity(Label = "@string/app_name", Theme = "@style/AppTheme", MainLauncher = true)]
        public class MainActivity : AppCompatActivity
        {

            IFirebaseConfig config = new FirebaseConfig
            {
                AuthSecret = "Im hiding it",
                BasePath = "Im hiding it"
            };
            IFirebaseClient client;
            protected override async void OnCreate(Bundle savedInstanceState)
            {
                base.OnCreate(savedInstanceState);
                client = new FireSharp.FirebaseClient(config);
                TextView txtQuestion = FindViewById<TextView>(Resource.Id.textQuestion);
                var g = 2;
//g variable is just for the test
                FirebaseResponse response = await client.GetAsync("question/"+g);
                Data obj = response.ResultAs<Data>();
                txtQuestion.Text = obj.question;

            }
        }
    }

AXML:

 <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:minWidth="25px"
        android:minHeight="25px">

        <TextView
            android:id="@+id/textQuestion"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
            android:textStyle="bold"
            android:textSize="35sp"
        />

    </RelativeLayout>

数据类:

namespace Quiz__
{
    internal class Data
    {
        public string Id { get; set; }
        public string question { get; set; }
        public string answer { get; set; }
        public string hint { get; set; }
    }
}

我已经使用具有插入和检索功能的程序执行此操作,但在这里我只想检索然后插入

【问题讨论】:

    标签: c# android firebase-realtime-database xamarin.android fire-sharp


    【解决方案1】:

    您可以在其他方法中移动 client.GetAsync("question/"+g) 并且不要将 async 用于 OnCreate 方法,然后再次尝试您的项目。

      protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            // Set our view from the "main" layout resource
            SetContentView(Resource.Layout.activity_main);
    
            client = new FireSharp.FirebaseClient(config);
            txtQuestion = FindViewById<TextView>(Resource.Id.textQuestion);
    
            //g variable is just for the test
            test();
        }
    
        public async void test()
        {
            var g = "test1";
            FirebaseResponse response = await client.GetAsync("question/" + g);
            Data obj = response.ResultAs<Data>();
            txtQuestion.Text = obj.question;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多