GVKun编程网logo

使用 Firebase 在 Unity 中加载列表列表字典(unity列表添加数据)

17

在本文中,我们将带你了解使用Firebase在Unity中加载列表列表字典在这篇文章中,我们将为您详细介绍使用Firebase在Unity中加载列表列表字典的方方面面,并解答unity列表添加数据常见

在本文中,我们将带你了解使用 Firebase 在 Unity 中加载列表列表字典在这篇文章中,我们将为您详细介绍使用 Firebase 在 Unity 中加载列表列表字典的方方面面,并解答unity列表添加数据常见的疑惑,同时我们还将给您一些技巧,以帮助您实现更有效的android – Firebase无限滚动列表视图滚动加载10项、android – 使用FirebaseOptions的Init firebase、Android 中 Unity 的 Firebase 分析仪表板中没有数据、c# – Unity Firebase中的InitializationException

本文目录一览:

使用 Firebase 在 Unity 中加载列表列表字典(unity列表添加数据)

使用 Firebase 在 Unity 中加载列表列表字典(unity列表添加数据)

我认为可能发生的情况是 var loadedDict = result.Value as Dictionary<string,List<List<string>>>; 没有立即进行转换。

我会检查以下内容。

1.- 数据在保存阶段被正确保存,并存储在数据库中并在问题中确认。

2.- 即使字典为空,检查任务返回的数据是否为空。因为可能正在 var result = task.Result; 中检索数据,但转换为字典不起作用。如果是这种情况,我也会在问题中确认这一点。

3.- 如果数据实际上是在第 2 阶段检索的,那么转换无效。就 documentation 而言,返回的原生类型的值是:

boolstringlongdoubleIDictionary{string,object}List{object}

如果您正在接收数据但 loadedDict 为空,您将需要编写将 IDictionary{string,object} 转换为您的 Dictionary<string,List<List<string>>> 并填写您的信息的方法。

我没有统一使用 firebase,仅在 Web 项目中使用,所以我不确定这是否可能是您的问题,这只是我的猜测。我很乐意检查您的发现

android – Firebase无限滚动列表视图滚动加载10项

android – Firebase无限滚动列表视图滚动加载10项

参见英文答案 > Get the data from the Firebase in limit to perform pull to refresh and load more functionality                                    2个
我正在寻找一种方法来实现在我的Firebase应用程序中滚动的简单列表视图,但我没有找到任何方法如何实现它.我已经在互联网上尝试了2-3个教程和文档,但没有达到要求的结果.

在我的应用程序中,我希望滚动像开始前10个列表项加载然后每次滚动接下来10或20项将加载,直到最后一项出现在列表的底部.

所以我尝试通过以下方式检索前10个项目:

ArrayList<Event> event=new ArrayList<>();

Dbref = FirebaseDatabase.getInstance().getReference("/event");
Dbref.startAt(1).limitToLast(10).addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                Log.e("Events.java ", "range query started! : " + dataSnapshot.getChildrenCount());
                String event_id = snapshot.child("details").child("event_id").getValue().toString();
                e=new Event(event_id); //Event is a model class for list items
                event.add(e);
                Log.e("ShowEventInfo : ", "" + event_id);
            }
        }
        @Override
        public void onCancelled(DatabaseError databaseError) {

        }
    });
    adapter=new Event_CustomAdapter(getActivity(),event); 
    ls.setAdapter(adapter); //here ls is instance of ListView

我推荐这个Youtube视频来实现这个功能:
(https://www.youtube.com/watch?annotation_id=annotation_3916642001&feature=iv&src_vid=YMJSBHAZsso&v=XwIKb_f0Y_w)

在上面的代码中,正如您所看到的,我正在生成Log以检查是否从firebase获取了数据,但是我没有输出Android监视器.

我不知道如何在列表视图中实现Firebase滚动.我认为对于那些在回收站视图/列表视图中实现无限滚动的人来说,这是一个常见问题.

你能帮我实现这个功能吗?谢谢.

解决方法:

这里我们将使用DatabaseReference;的limitToFirst(int)或limitToLast(int)方法从FireBase获取第一个或最后一个记录.

在下面的示例中,我使用limitToFirst(int)仅从Firebase获取最高指定记录.在这里,我正在使用oldestPostId,这是我们记录的最后一个或第十个键.

  private String oldestPostId;
  DatabaseReference Dbref = FirebaseDatabase.getInstance().getReference("/event");


  /////GETTING FirsT 10 RECORDS FROM THE FIREBASE HERE

        Dbref.limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                for (DataSnapshot child : dataSnapshot.getChildren()) {

                    oldestPostId = child.getKey(); ////HERE WE ARE SAVING THE LAST POST_ID FROM URS POST

                    dataSnapshot.getChildrenCount());
                    String event_id = snapshot.child("details").child("event_id").getValue().toString();
                    e=new Event(event_id); //Event is a model class for list items
                    event.add(e);
                    Log.e("ShowEventInfo : ", "" + event_id);
                }      
            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }
        });

从上面的代码,我已经从firebase获得前10条记录,现在我们将实现加载更多功能,所以我使用Listview的onscrolllistener
在isScrollCompleted()上,我们将使用orderByKey()通过limitToFirst()方法进一步获取10条记录.我已经实现了整个代码以获取有关isScrollCompleted()的更多数据,请查看以下示例.

YOUR_LISTVIEW.setonScrollListener(new OnScrollListener() {
    private int currentVisibleItemCount;
    private int currentScrollState;
    private int currentFirstVisibleItem;
    private int totalItem;
    private LinearLayout lBelow;


    @Override
    public void onScrollStateChanged (AbsListView view,int scrollState){
        // Todo Auto-generated method stub
        this.currentScrollState = scrollState;
        this.isScrollCompleted();
    }

    @Override
    public void onScroll (AbsListView view,int firstVisibleItem,
    int visibleItemCount, int totalItemCount){
        // Todo Auto-generated method stub
        this.currentFirstVisibleItem = firstVisibleItem;
        this.currentVisibleItemCount = visibleItemCount;
        this.totalItem = totalItemCount;


    }

    private void isScrollCompleted () {
        if (totalItem - currentFirstVisibleItem == currentVisibleItemCount
                && this.currentScrollState == SCROLL_STATE_IDLE) {
            /** To do code here*/
            Dbref.orderByKey().startAt(oldestPostId).limitToFirst(10).addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot child : dataSnapshot.getChildren()) {

                        oldestPostId = child.getKey();
                        String event_id = snapshot.child("details").child("event_id").getValue().toString();
                        e = new Event(event_id); //Event is a model class for list items
                        event.add(e);
                        Log.e("ShowEventInfo : ", "" + event_id);
                    }
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }
            });

        }
    });

});

android – 使用FirebaseOptions的Init firebase

android – 使用FirebaseOptions的Init firebase

我想在没有google-services.json的情况下使用FirebaSEOptions初始化Firebase,我正在关注此处的博客文章 https://firebase.googleblog.com/2017/03/take-control-of-your-firebase-init-on.html.

我删除了FirebaseInitProvider.

<provider
    android:name="com.google.firebase.provider.FirebaseInitProvider"
    android:authorities="${applicationId}.firebaseinitprovider"
    tools:node="remove"/>

我试图在Application子类中设置默认的FirebaseApp:

FirebaSEOptions options = new FirebaSEOptions.Builder()
                .setApplicationId("valid_app_id")
                .setGcmSenderId("valid_gcm_sender_id")
                .setApiKey("valid_api_key")
                .build();

FirebaseApp.initializeApp(getApplicationContext(),options);

似乎一切正常,但是当我想将一些事件记录到FirebaseAnalytics时,我收到此错误:缺少google_app_id. Firebase Analytics已停用.
我不知道是什么问题.

解决方法

如果您没有使用google-services.json文件,则JSON中存在的信息需要在某处才能读取插件/代码.您可以在此处执行的操作是使用具有以下属性的字符串资源手动创建XML文件:
google_app_id:

{YOUR_CLIENT}/client_info/mobilesdk_app_id
gcm_defaultSenderId:

project_info/project_number
default_web_client_id:

{YOUR_CLIENT}/oauth_client/client_id (client_type == 3)
ga_trackingId:

{YOUR_CLIENT}/services/analytics-service/analytics_property/tracking_id
firebase_database_url:

project_info/firebase_url
google_api_key:

{YOUR_CLIENT}/api_key/current_key
google_crash_reporting_api_key:

{YOUR_CLIENT}/api_key/current_key

看看here.确保添加google_app_id,没有它会导致错误发布.

如果您没有将“tools”命名空间添加到清单根标记中,则还必须添加它:

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="your.package"
    >

其余的实现方式与使用FirebaSEOptions和Firebase.InitializeApp()相同.

Android 中 Unity 的 Firebase 分析仪表板中没有数据

Android 中 Unity 的 Firebase 分析仪表板中没有数据

如何解决Android 中 Unity 的 Firebase 分析仪表板中没有数据?

我将 firebase 分析集成到了 unity 中,并遵循了 firebase 指南中提到的所有步骤。我收到了来自统一流的分析。 问题是当我在android中集成unity时,分析不再出现。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

c# – Unity Firebase中的InitializationException

c# – Unity Firebase中的InitializationException

我的Unity项目中的Firebase存在问题. Firebase SDK已在项目中导入,已构建,在此过程中没有错误.

SHA-1密钥是使用keytool生成的,并添加到控制台中的Firebase项目中.

google-services.json也被添加到Assets文件夹中.

初始化Firebase的简单脚本:

DependencyStatus dependencyStatus = DependencyStatus.UnavailableOther;
// Use this for initialization
void Start () 
{
    Debug.Log ("Start FireBase");
    dependencyStatus = FirebaseApp.CheckDependencies();

    if (dependencyStatus != DependencyStatus.Available) 
    {
        FirebaseApp.FixDependenciesAsync().ContinueWith(task => 
        {
            dependencyStatus = FirebaseApp.CheckDependencies();
            if (dependencyStatus == DependencyStatus.Available) 
            {
                Initializefirebase();
            } 
            else 
            {
                Debug.LogError("Could not resolve all Firebase dependencies: " + dependencyStatus);
            }
        });
    } 
    else 
    {
        Initializefirebase();
    }
}

void Initializefirebase() 
{
    FirebaseAnalytic.Instance().setAnalyticsCollectionEnabled(true);
    FirebaseAnalytic.Instance().setUserProperty(FirebaseAnalytics.UserPropertySignUpMethod,"Google");
    FirebaseAnalytic.Instance().setUserId(SystemInfo.deviceUniqueIdentifier);
    FirebaseAnalytic.Instance().logEvent("LogIn",FirebaseAnalytics.EventLogin);
    Debug.Log ("FirebaseAnalytics Logined");
}

所以应用程序构建和运行没有崩溃.但通过adb logcat -s Unity我可以看到以下内容:

I/Unity   (27030): Start FireBase

I/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
I/Unity   (27030):

I/Unity   (27030): Firebase App initializing app com.boldstatementproductions.mcpro (default 1).

I/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)
I/Unity   (27030):

W/Unity   (27030): Callback module already shut down

W/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

E/Unity   (27030): java_app

E/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

I/Unity   (27030): Firebase App initializing app com.boldstatementproductions.mcpro (default 1).

I/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

W/Unity   (27030): Callback module already shut down

W/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

E/Unity   (27030): java_app

E/Unity   (27030): (Filename: ./artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 42)

I/Unity   (27030): InitializationException: Failed to initialize the default Firebase App.

I/Unity   (27030):   at Firebase.FirebaseApp.CreateAndTrack (Firebase.CreateDelegate createDelegate) [0x00000] in <filename unkNown>:0

I/Unity   (27030):   at Firebase.FirebaseApp.Create () [0x00000] in <filename unkNown>:0

I/Unity   (27030):   at Firebase.FirebaseApp.get_DefaultInstance () [0x00000] in <filename unkNown>:0

I/Unity   (27030):   at Firebase.Analytics.FirebaseAnalytics..cctor () [0x00000] in <filename unkNown>:0

I/Unity   (27030): Rethrow as TypeInitializationException: An exception was thrown by the type initializer for Firebase.Analytics.FirebaseAnalytics

I/Unity   (27030):   at FirebaseDependencyResolver.Initializefirebase () [0x00000] in <filename unkNown>:0

I/Unity   (27030):   at FirebaseDependencyResolver.Start () [0x00000] in <filename unkNown>:0

I/Unity   (27030): (Filename:  Line: -1)

谷歌搜索任何这些消息都没有多大帮助.我错过了什么?
我一步一步地遵循了针对Unity的Firebase安装教程.这个错误已经让我恐惧了一个星期了!

解决方法

因此,在1245321653214尝试重新导入Firebase并解决此问题后,无论如何我们发现之前的另一个插件Admob覆盖了Firebase使用的一些库.

我们删除了Firebase和Admob可能使用的所有aars和jar,首先重新导入Firebase,然后选择性地重新导入Admob.
主要规则是不允许Admob覆盖Firebase使用的任何文件,例如“play-services-blah-blah.aar”.

这篇文章的主要建议是不要急于导入插件:导入一个,配置,构建,检查它是否有效(10次),提交,导入秒等等.这样你就可以清楚地看到第三方之间有混淆.

如果你已经陷入困境,你最好删除所有第三方并从头开始.

因此,请小心使用与下图中类似的文件.

希望这可以帮助人们预防我们遇到的问题.

关于使用 Firebase 在 Unity 中加载列表列表字典unity列表添加数据的介绍现已完结,谢谢您的耐心阅读,如果想了解更多关于android – Firebase无限滚动列表视图滚动加载10项、android – 使用FirebaseOptions的Init firebase、Android 中 Unity 的 Firebase 分析仪表板中没有数据、c# – Unity Firebase中的InitializationException的相关知识,请在本站寻找。

本文标签: