Android-Firebase数据库中的一个Arraylist

时间:2018-05-08 22:29:10

标签: android database firebase arraylist firebase-realtime-database

我想在我的数据库用户中写ArrayList ArticleDesire Article.Class,我的Article类有一个字符串titre和一个{{ 1}} ArrayList,在数据库中motcle数组不会出现 我的数据库已经检查过,它不是空的Dataset

以下是我的motcle Add方法

ArticleDesire

我的文章构造函数

 public void addArticleDesire(final ArrayList<Article> motcle, String Userid)
    {
        mDatabase = FirebaseDatabase.getInstance().getReference("User");
        DatabaseReference user = mDatabase.child(Userid);
        final DatabaseReference keylist = user.child("ArticleDesire");
        keylist.setValue(motcle);
   }

我在 public Article(ArrayList<String> arrayList, String titre) { if (arrayList.isEmpty()){ Log.w("Arraylist","VIDE"); } this.motcle=new ArrayList(arrayList); if (motcle.isEmpty()==false) { Log.w("Arraylist"," NON VIDE"+motcle); } this.titre=titre; } 中调用了AddArticleDesire,我在调用时检查了构造函数,activity不为空且文章都在其中。
是否有可能在ArrayList类中使用不同的构造函数时,它会干扰写作?

1 个答案:

答案 0 :(得分:1)

Firebase Realtime Database不存储数组。它存储信息集(字典/关联数组)。所以你能得到的最接近的解决方案是:

countries: {
  0: "Spain",
  1: "France",
  2: "Italy",
  3: "Poland",
  4: "Belgium"
}

所以这应该是您正在寻找的解决方案。 如果您想阅读有关实时数据库中阵列的更多信息和最佳实践,我建议您查看下一篇文章: https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html

最后,如果您最近开始使用您的应用和数据库,我建议您将其切换为Firestore,以便您存储数组:https://firebase.google.com/docs/firestore/solutions/arrays?hl=es-419