首页 > 解决方案 > 将大量值推送到android中的firebase

问题描述

我想存储已安装在手机中的应用程序详细信息列表(名称、包名称、图标),我已经使用适配器在列表视图中显示了已安装应用程序的列表。但无法将数据列表推送到 Firebase。任何人都可以告诉我如何从 firebase 推送和检索数据列表。

这是代码显示安装在移动设备中的列表应用程序的代码

MainActivity.java

public class MainActivity extends AppCompatActivity {
ListView apkList;
FirebaseDatabase mFirebaseDatabase;
DatabaseReference mFireBaseReference;

ArrayList<AppLIst> arrayList;

private ArrayList<String> _listActivitiesHidden = new ArrayList();
private ArrayList<AppLIst> _listActivitiesAll = new ArrayList();
private ArrayList<AppLIst> _customApp = new ArrayList();
private String appId;

PackageManager packageManager;
AppAdapter myAdapter;

private static  String userId;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  mFirebaseDatabase=FirebaseDatabase.getInstance();
  mFireBaseReference=mFirebaseDatabase.getReference("apps");
    packageManager = getPackageManager();
    List<PackageInfo> packageList = packageManager
            .getInstalledPackages(PackageManager.GET_PERMISSIONS);

    List<PackageInfo> packageList1 = new ArrayList<PackageInfo>();

    /*To filter out System apps*/
    for(PackageInfo pi : packageList) {
        boolean b = isSystemPackage(pi);
        if(!b) {
            packageList1.add(pi);
        }
    }
    apkList = (ListView) findViewById(R.id.idListView);
     myAdapter = new AppAdapter(this,packageList,packageManager);
    apkList.setAdapter(myAdapter);

  //  apkList.setOnItemClickListener(this);
}

private boolean isSystemPackage(PackageInfo pkgInfo) {
    return ((pkgInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) != 0) ? true
            : false;
}

我不知道将此数据列表存储到firebase中。任何帮助表示赞赏。

标签: javaandroidfirebasearraylist

解决方案


从文档:

public Task<Void> setValue (Object value)

将此位置的数据设置为给定值。传递 nullsetValue()将删除指定位置的数据。对于 JSON 类型对应的值,该方法接受的原生类型:

Boolean
Long
Double
String
Map<String, Object>
List<Object>

因此,要添加您可以执行以下操作:

mFireBaseReference = mFirebaseDatabase.getReference("apps");
mFireBaseReference.setValue(packageList1);

推荐阅读