Android 使用不同的postkey上传一个图像,但我想在Firebase数据库中存储一个postkey下的所有图像

Android 使用不同的postkey上传一个图像,但我想在Firebase数据库中存储一个postkey下的所有图像,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,这是我用post键将所有图像上传到firebase存储和数据库的代码,但一个图像用不同的post键存储,我想将所有上传的图像存储到firebase数据库博客下的一个post键。请帮助我,这是我过去几天面临的问题,我想在一个贴子下检索所有上传的图片 upload.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {

这是我用post键将所有图像上传到firebase存储和数据库的代码,但一个图像用不同的post键存储,我想将所有上传的图像存储到firebase数据库博客下的一个post键。请帮助我,这是我过去几天面临的问题,我想在一个贴子下检索所有上传的图片

 upload.setOnClickListener(new View.OnClickListener()
    {
        @Override
        public void onClick(View view)
        {
            UploadTask uploadTask;
            if( selectedImageGridView.getChildCount()!= 0)
            {
                for ( int i = 0; i < selectedImages.size(); i++) {
                    blogimages   =  new ArrayList<>();
                   Uri  uri = Uri.parse("file://"+selectedImages.get(i));
                    final String CurrentUser = firebaseAuth.getCurrentUser().getUid();
                    StorageReference reference = mstorageReference.child("Blog_pics/users").child(uri.getLastPathSegment());
                    uploadTask = reference.putFile(uri);

                   uploadTask.addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
                        }
                    }).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                        @Override
                        public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {

                            final Uri downloaduri = taskSnapshot.getDownloadUrl();
                            Log.v("DOWNLOAD URI", String.valueOf(downloaduri));
                            blogimages.add(downloaduri.toString());
                            Log.v("BLOGGIMAGES", String.valueOf(blogimages));
                            final String key = mdatabaseReference.push().getKey();
                            final String posttitle = desc.getText().toString();
                            final String CurrentUser = firebaseAuth.getCurrentUser().getUid();
                            int l = 0;
                            while (l < blogimages.size()){
                             Log.v("BLOGIMAGESSIZE", String.valueOf(blogimages.size()));
                                Map n = new HashMap();
                                int countingImage = 0;
                                n.put(String.valueOf("img" + countingImage), blogimages.get(l).toString());
                                Log.v("MapCount", String.valueOf(n));
                                mdatabaseReference.child(key).child("images").updateChildren(n).addOnCompleteListener(new OnCompleteListener() {
                                    @Override
                                    public void onComplete(@NonNull Task task) {
                                        if (task.isSuccessful()) {
                                            Toast.makeText(PhotoUploadActivity.this, "got download url", Toast.LENGTH_SHORT).show();

                                        } else{

                                            Toast.makeText(PhotoUploadActivity.this, "Failed to put in db", Toast.LENGTH_SHORT).show();
                                        }
                                    }
                                });

                                l++;
                                countingImage++;
                            }
                            }

                    }) .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception exception) {
                        }
                    });
                }

            }
        }
    });
upload.setOnClickListener(新视图.OnClickListener()
{
@凌驾
公共void onClick(视图)
{
上传任务上传任务;
如果(selectedImageGridView.getChildCount()!=0)
{
对于(int i=0;i
您必须更改此行

StorageReference reference = mstorageReference.child("Blog_pics/users").child(uri.getLastPathSegment());
对于这些行:您必须将这些行放在for循环之前

String userId = firebaseAuth.getCurrentUser().getUid();
                    StorageReference reference = mstorageReference.child("Blog_pics/users").child(userId);
然后在循环内部

refrence.child(uri.getLastPathSegment());
uploadTask = reference.putFile(uri);
...

您希望实现的数据库结构是什么?请编辑您的问题并添加预期的架构。for循环最多可存储到firebase的图像。如果我传递的是push函数,那么只有一个图像url在存储,而没有push,那么它会将所有图像url存储在firebase数据库中