有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

上的java错误。设置值和。addValueListener

我在如何将图像保存到firebase存储中时出现了一些编码错误。有两个错误。。。谁能帮我。。。我的日志如下

1)错误:找不到符号方法setValue(字符串)

2)错误:找不到符号方法addValueEventListener()

storageImage.child("Tuition Image").setValue(downloadUrl)
                                .addOnCompleteListener(new OnCompleteListener<Void>()
                                {
                                    @Override
                                    public void onComplete(@NonNull Task<Void> task)
                                    {
                                        if (task.isSuccessful())
                                        {
                                            Intent ViewIntent = new Intent(AddAdsActivity.this, AddAdsActivity.class);
                                            ViewIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                                            startActivity(ViewIntent);
                                            finish();

                                            Toast.makeText(AddAdsActivity.this, "Tuition image has been successfully stored in Firebase Database", Toast.LENGTH_SHORT).show();
                                            loadingBar.dismiss();
                                        }

                                        else
                                        {
                                            String message = task.getException().getMessage();
                                            Toast.makeText(AddAdsActivity.this, "Error occured: " + message, Toast.LENGTH_SHORT).show();
                                            loadingBar.dismiss();
                                        }
                                    }
                                });

我的第二个错误

storageImage.child(currentUserID).addValueEventListener(new ValueEventListener()
    {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot)
        {
            if(dataSnapshot.exists())
            {
                image = dataSnapshot.child("Tuition Image").getValue().toString();
                Picasso.get().load(image).placeholder(R.drawable.camera).into(TuitionImage);
            }
        }

        @Override
        public void onCancelled(DatabaseError databaseError)
        {

        }
    });

共 (2) 个答案

  1. # 1 楼答案

    如何修复:确保它们位于OnCreate方法或OnStart中,并检查您的storageImage类型是否正确

    首先

    DatabaseReference TuitionReference =storageImage.child("Tuition Image");
    
    TuitionReference.setValue(downloadUrl)
        .addOnCompleteListener(new OnCompleteListener<Void>()
        {
            @Override
            public void onComplete(@NonNull Task<Void> task)
            {
                if (task.isSuccessful())
                {
                    Intent ViewIntent = new Intent(AddAdsActivity.this, AddAdsActivity.class);
                    ViewIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                    startActivity(ViewIntent);
                    finish();
                    Toast.makeText(AddAdsActivity.this, "Tuition image has been successfully stored in Firebase Database", Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
                }
    
                else
                {
                    String message = task.getException().getMessage();
                    Toast.makeText(AddAdsActivity.this, "Error occured: " + message, Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
                }
            }
        });
    

    秒:

    DatabaseReference reference = database.getReference("Stats").child("Matematik");
    reference.addValueEventListener(new ValueEventListener()
        {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot)
            {
                if(dataSnapshot.exists())
                {
                    image = dataSnapshot.child("Tuition Image").getValue().toString();
                    Picasso.get().load(image).placeholder(R.drawable.camera).into(TuitionImage);
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError)
            {
    
            }
        });
    
  2. # 2 楼答案

    解决方案:

    第一次上传图片:

    private void uploadImageAndGetURL(String ImageId) {
    
        final StorageReference filePath = storageImage.child(ImageId + ".jpg");
    
        UploadTask uploadTask = filePath.putFile(imageUri);
    
        uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
            @Override
            public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
                if (!task.isSuccessful()) {
                    throw task.getException();
                }
                // Continue with the task to get the download URL
                return filePath.getDownloadUrl();
            }
        }).addOnCompleteListener(new OnCompleteListener<Uri>() {
            @Override
            public void onComplete(@NonNull Task<Uri> task) {
    
                if (task.isSuccessful()) {
    
                    downloadURL = task.getResult().toString();
    
                    storeDataToFirebase();
    
                } else {
    
                    Toast.makeText(AddAdsActivity.this, "There has bean a problem in the database.", Toast.LENGTH_SHORT).show();
                    loadingBar.dismiss();
    
                }
            }
        });
    
    }
    

    然后上传数据:

    private void storeDataToFirebase() {
    
        String id = databaseAdvertisement.push().getKey();
        Advertisement advertisement = new Advertisement(id, downloadURL, tuitioname, providername, providergender, tuitionaddress, tuitionyear, tuitioncontactnumber, tuitionemail, tuitionsubject, tuitionprice, tuitionclasssize);
    
        databaseAdvertisement.child(id).setValue(advertisement)
                .addOnSuccessListener(new OnSuccessListener<Void>()
                {
                    @Override
                    public void onSuccess(Void aVoid)
                    {
                        Toast.makeText(AddAdsActivity.this, "Advertisement added successfully!", Toast.LENGTH_SHORT).show();
    
                        Intent ViewAdsIntent = new Intent(AddAdsActivity.this, ViewAdsActivity.class);
                        ViewAdsIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
                        startActivity(ViewAdsIntent);
                        finish();
    
                        loadingBar.dismiss();
                    }
                })
                .addOnFailureListener(new OnFailureListener()
                {
                    @Override
                    public void onFailure(@NonNull Exception e)
                    {
                        Toast.makeText(AddAdsActivity.this, "Failed to save the advertisement data. Please try again.", Toast.LENGTH_LONG).show();
                        loadingBar.dismiss();
                    }
                });
    
    }
    

    就这样