java - 将来自多个活动的数据保存到一个 id firebase 数据库,而不是创建两个不同的 id
问题描述
//1 ..我想将来自一个活动的图片和来自另一个活动的数据发送到具有1个相同ID的同一个数据库firebase,而不是创建2个不同的ID(一个用于图片,另一个用于数据(名称,通知等,如下所述))
在此处
输入图像描述是一个想法..用于将不同的活动数据存储到相同的 id firebase..这不是我的示例,但我有同样的问题...但我不想要两个 id,我想要一个 id 用于 pic Uri 和数据出色地。
//2..这是我的第一个活动..在这个活动中,我有相机来捕捉图像,然后将此 Pic Uri 发送到上传类(gettersetter 类)以存储到数据库 firebase。在这里,我已将图片 Uri 发送到 gettersetter 类。
popQuickActivity.java
if(imgUri!=null){
final ProgressDialog progressDialog=new ProgressDialog(this);
progressDialog.setTitle("Uploading.....");
progressDialog.show();
StorageReference fileReference=mStorageRef.child(System.currentTimeMillis()+"." +getFileExtension(imgUri));
fileReference.putFile(imgUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Handler handler=new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
progressDialog.dismiss();
}
},500);
Toast.makeText(popQuickActivity.this, "Uploaded successfull", Toast.LENGTH_LONG).show();
String downloadUrl = taskSnapshot.getDownloadUrl().toString();
upload upload=new upload(downloadUrl);
String uploadId=mDatabaseRef.push().getKey();
mDatabaseRef.child(uploadId).setValue(upload);
}
// 这是我的上传(gettersetter 类)...img uri 在这里
上传.java
公开课上传{
private String mImageUri;
private String mNoticeNo;
private String mName;
private String mDate;
private String mCharge;
private String mDescription;
private String mCnic;
public upload(){
}
public upload(String name, String noticeNo, String date, String amountCharge, String des, String cnic, String description) {
if(description.trim().equals("")){
description="No Description";
}
mName=name;
mCharge=amountCharge;
mDate=date;
mCnic=cnic;
mNoticeNo=noticeNo;
mDescription=description;
}
public upload(String downloadUrl) {
mImageUri=downloadUrl;
}
public String getmImageUri() {
return mImageUri;
}
public void setmImageUri(String mImageUri) {
this.mImageUri = mImageUri;
}
public String getmNoticeNo() {
return mNoticeNo;
}
public void setmNoticeNo(String mNoticeNo) {
this.mNoticeNo = mNoticeNo;
}
public String getmName() {
return mName;
}
public void setmName(String mName) {
this.mName = mName;
}
public String getmDate() {
return mDate;
}
public void setmDate(String mDate) {
this.mDate = mDate;
}
public String getmCharge() {
return mCharge;
}
public void setmCharge(String mCharge) {
this.mCharge = mCharge;
}
public String getmDescription() {
return mDescription;
}
public void setmDescription(String mDescription) {
this.mDescription = mDescription;
}
public String getmCnic() {
return mCnic;
}
public void setmCnic(String mCnic) {
this.mCnic = mCnic;
}
}
//这是我的另一个活动..这里我正在将数据(名称,通知编号,日期等)发送到 gettersetter 类(上传类)在 firebase 中的相同位置...但它正在创建两个不同的 id 而不是创建一个 id 并存储img 和 data 在同一个 id 中。
QuickChallan.java
公共无效doIt(查看视图){
String Name=name.getText().toString().trim();
String NoticeNo=noticeno.getText().toString().trim();
String Cnic=cnic.getText().toString().trim();
String AmountCharge=amountcharge.getText().toString().trim();
String Date=date.getText().toString().trim();
String Des=des.getText().toString().trim();
upload upload=new upload(Name,NoticeNo,Date,AmountCharge,Des,Cnic,Des);
String uploadId=mDatabaseRef.push().getKey();
mDatabaseRef.child(uploadId).setValue(upload);
}
解决方案
它创建了两个随机 ID,因为在活动中popQuickActivity.java
您正在创建一个 ID 并将其存储在变量中uploadId
。
然后在活动中,QuickChallan.java
您还创建另一个 ID 并将其存储在变量中,uploadId
但这次您添加不同的数据。
只使用一个ID。在将图像 url 存储在 id 下之后的第一个活动 ( popQuickActivity.java
) 中,您需要将其添加到intent
:
Intent intent = new Intent(activity2.this, activity1.class);
intent.putExtra("id", uploadId);
startActivity(intent);
然后在第二个活动中:
Bundle bundle = getIntent().getExtras();
String id = bundle.getString("id");
mDatabaseRef.child(id).setValue(upload);
这样,在第二个活动中,您不会使用创建另一个 ID push()
,因此您当然必须删除uploadId=mDatabaseRef.push().getKey()
,因为该行正在创建另一个 ID。
推荐阅读
- php - 获取作者在空间分类中的帖子
- apache - .htaccess 将查询字符串重写为路径 url
- android - 房间数据库不更新值
- build - 工艺,关于建设 Kdenlive
- javascript - Lodash 用条件合并两个数组
- python - 简单的列表程序不起作用 - 列表索引超出范围错误
- python - 未知标签类型:“连续”sklearn LogisticRegression
- java - 通过 Java 应用程序创建的 Csv 文件中的可点击电子邮件链接
- php - 在 Laravel Dom PDF 视图中,Table>td 内容显示不正确。如何将剩余内容放到底部或下一页?
- angular - 如何在角管道中异步设置变量?