Java .setValue和.addValueListener上出现错误

Java .setValue和.addValueListener上出现错误,java,android,Java,Android,我在如何将图像保存到firebase存储中时出现了一些编码错误。有两个错误。。。谁能帮我。。。我的日志如下 1) 错误:找不到符号方法setValue(字符串) 2) 错误:找不到符号方法addValueEventListener() 如何修复:确保它们位于OnCreate方法或OnStart中,并检查您的storageImage类型是否正确 首先: DatabaseReference TuitionReference =storageImage.child("Tuition Image");

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

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

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


如何修复:确保它们位于
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)
        {

        }
    });
解决方案:

首次上传图像:

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 uploadImageAndGetURL(字符串ImageId){
最终的StorageReference文件路径=storageImage.child(ImageId+“.jpg”);
UploadTask UploadTask=filePath.putFile(imageUri);
uploadTask.continueWithTask(新的Continuation(){
@凌驾
公共任务(@NonNull Task Task)引发异常{
如果(!task.issusccessful()){
抛出task.getException();
}
//继续执行任务以获取下载URL
返回filePath.getDownloadUrl();
}
}).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
downloadURL=task.getResult().toString();
storeDataToFirebase();
}否则{
Toast.makeText(AddAdsActivity.this,“数据库中有问题。”,Toast.LENGTH_SHORT.show();
loadingBar.disclose();
}
}
});
}
然后上传数据:

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

}
private void storeDataToFirebase(){
String id=databaseadvision.push().getKey();
广告广告=新广告(id、下载URL、学费名称、提供者名称、提供者性别、学费地址、学费年份、学费联系人号码、学费电子邮件、学费主题、学费价格、学费类别大小);
DatabaseAdvertision.child(id).setValue(Advertision)
.addOnSuccessListener(新的OnSuccessListener()
{
@凌驾
成功时公开作废(作废避免)
{
Toast.makeText(AddAdsActivity.this,“广告添加成功!”,Toast.LENGTH\u SHORT.show();
Intent ViewAdsIntent=新的Intent(AddAdsActivity.this,ViewAdsActivity.class);
ViewAdsIntent.addFlags(Intent.FLAG_活动_新任务| Intent.FLAG_活动_清除任务);
星触觉(ViewAdsIntent);
完成();
loadingBar.disclose();
}
})
.addOnFailureListener(新的OnFailureListener()
{
@凌驾
public void onFailure(@NonNull异常e)
{
Toast.makeText(AddAdsActivity.this,“未能保存广告数据。请重试。”,Toast.LENGTH_LONG.show();
loadingBar.disclose();
}
});
}

就是这样。

只有第二个错误在onCreate方法中。如何将第一个错误放在Create或onStart方法上?我没有启动方法,先生…第一个错误在这行上有一个红色错误;DatabaseReference tutionreference=storageImage.child(“学费图像”);storageImage的类型是什么?我已经获得了这两个错误的图像,但是图像没有保存在firebase数据库中。我已经在闲逛了,先生,除了鸡翅什么都不是。。哈哈哈。。谢谢
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();
                }
            });

}