将来自多个活动的数据保存到一个id firebase数据库中,而不是创建两个不同的id

// 1..i我想将一个活动的图片和另一活动的数据发送到具有1个相同ID的同一数据库Firebase中,而不是创建2个不同的ID(一个用于图片,另一个用于数据(名称,通知等,如上所述)下面))
enter image description here这是一个想法..用于将不同的活动数据存储到同一个id firebase中。.这不是我的示例,但是我有同样的问题...但是我不想要两个id,我想要一个id用于pic Uri和数据也一样
// 2 ...这是我的第一个活动。.在此活动中,我有摄像头捕获图像,然后将此Pic Uri发送到上载类(gettersetter类)以存储到数据库firebase中。在这里,我已将pic Uri发送到了吸油烟机班。

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在这里

upload.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;
}

}


//这是我的另一项活动..在这里,我正在将数据(名称,noticeNo,日期等)发送到Firebase中相同位置的gettersetter类(upload类)...但是它正在创建两个不同的id,而不是创建一个id并存储img和数据都在同一个ID中。

QuickChallan.java

public void doIt(View view){

    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);


}
liufvsdnvsd 回答:将来自多个活动的数据保存到一个id firebase数据库中,而不是创建两个不同的id

它会创建两个随机ID,因为在活动popQuickActivity.java中您正在创建一个ID,并将其存储在变量uploadId中。

然后在活动QuickChallan.java中,您还创建了另一个ID并将其存储在变量uploadId中,但是这次您添加了其他数据。

仅使用一个ID。在将图片网址存储在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);

这样,在第二个活动中,您不会使用push()创建另一个ID,因此,您当然必须删除uploadId=mDatabaseRef.push().getKey(),因为此行正在创建另一个ID。

本文链接:https://www.f2er.com/3034526.html

大家都在问