【发布时间】:2017-06-09 20:07:56
【问题描述】:
我目前正在开发一个应用程序,该应用程序使用 firebase 存储和 firebase 数据库下载文件以存储链接到存储的 url。 fire base 数据库树看起来有点像这样
应用程序 | 应用程序1 | 命名我的应用下载 1 网址http://link下载 关于您下载的应用程序 您下载的应用的图片图片网址 下载 = 0 | 应用程序2 (数据同上)
我有自定义的基本适配器,它允许我添加图像 url 和关于值。 当有人点击我列表中的项目时,它会下载并安装您选择的应用程序,方法是获取项目的位置,然后使用 httpget 从数据库中获取 url。
id 喜欢的是当他们点击项目时,它会自动将孩子下载的内容加 1,因此它充当下载计数器。
mrootRef = new Firebase("https://admob-app-id-3020090926.firebaseio.com/Apps");
mlv = (ListView) findViewById(R.id.lvFilmapps);
mrootRef.child("Filmapps").addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
final String appname = dataSnapshot.child("name").getValue(String.class);
final String url = dataSnapshot.child("url").getValue(String.class);
final String apkname = dataSnapshot.child("apk").getValue(String.class);
final String about = dataSnapshot.child("about").getValue(String.class);
final String appimg = dataSnapshot.child("image").getValue(String.class);
FilmArray.add(appname);
urlList.add(url);
ApkList.add(apkname);
Aboutapp.add(about);
appImage.add(appimg);
//String[] convertion for the BaseAdpater
String[] arr = FilmArray.toArray(new String[FilmArray.size()]);
String[] arr1 = Aboutapp.toArray(new String[Aboutapp.size()]);
String[] arr2 = appImage.toArray(new String[appImage.size()]);
mlv.setAdapter(new dataListAdapter(arr,arr1,arr2));
new dataListAdapter(arr,arr1,arr2).notifyDataSetChanged();
mlv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
newnamestring = ApkList.get(i).toString();
apkNames = FilmArray.get(i).toString();
new DownloadFileFromURL().execute(urlList.get(i));
}
});
}
【问题讨论】:
-
最简单的方法可能是使用 AddListenerForSingleValueEvent 获取当前下载次数,然后添加一个,并使用 setValue() 保存,如果您希望人们同时下载,那么您可能想像@TheSunshinator 在他的回答中提到的那样查看交易。
标签: java android firebase increment