如何在String []中存储从firebase获取的多个键?

时间:2017-09-21 09:17:43

标签: android firebase firebase-realtime-database

此循环一次获取1个键。我希望将String[]中的所有密钥存储在循环的最后,然后在ArrayAdapter中使用它以进行自动完整文本查看。

fdatabaseuser.addValueEventListener(new ValueEventListener({
   @Override
   public void onDataChange(DataSnapshot dataSnapshot) {

       String item="";

       for (DataSnapshot list: dataSnapshot.getChildren())
       {
           Object obj= list.getKey();
           item=obj.toString();
       }

       Toast.makeText(GiveActivity.this,item,Toast.LENGTH_LONG).show();

   }

   @Override
   public void onCancelled(DatabaseError databaseError) {

   }
});

3 个答案:

答案 0 :(得分:0)

实际上你已经有了钥匙。您可以创建ArrayList并添加项目。

ArrayList<String> keys = new ArrayList<>();
fdatabaseuser.addValueEventListener(new ValueEventListener({
   @Override

   public void onDataChange(DataSnapshot dataSnapshot) {

      String item="";

      for (DataSnapshot list: dataSnapshot.getChildren())
      {
          Object obj= list.getKey();
          item=obj.toString();
          keys.add(item);
      }

      Toast.makeText(GiveActivity.this,item,Toast.LENGTH_LONG).show();

   }

   @Override
   public void onCancelled(DatabaseError databaseError) {

   }
});

答案 1 :(得分:0)

let options: FileUploadOptions = {
    fileKey: 'file',
    fileName: 'Order_'+this.order_data.order_id+"_"+this.order_data.order_type+".png",
    httpMethod : 'POST',
    mimeType: 'image/png',
    chunkedMode: false,
    headers : {"Accept": "image/png"}
  };

List<String> item; 方法

中的初始化列表
OnCreate

然后更改此代码:

item=new ArrayList<>();

答案 2 :(得分:0)

要实现此目的,请使用以下代码:

fdatabaseuser.addValueEventListener(new ValueEventListener({
   @Override
   public void onDataChange(DataSnapshot dataSnapshot) {
       List<String> list = new ArrayList<>();;

       for (DataSnapshot ds : dataSnapshot.getChildren()) {
           String key = ds.getKey();
           list.add(key);
       }
       Log.d("TAG", list);
   }

   @Override
   public void onCancelled(DatabaseError databaseError) {}
});

请记住,必须在list方法中声明和更新onDataChange(),否则它将为null,因为onDataChange()的异步行为甚至在您添加这些异步行为之前就会被调用列表的键。