【发布时间】:2018-12-27 09:20:25
【问题描述】:
如何从覆盖方法中获取价值?
这是我的代码,我厌倦了将 url 设置为 setValue(url) 但我无法获取
String url =dlUri.toString(); this value
child("downloadurl").setValue(url);
public void upload(View view){
UUID uuidImage = UUID.randomUUID();
String imageName = "images/"+uuidImage+".jpg";
final StorageReference storageReference = mStorageRef.child(imageName);
storageReference.putFile(selected).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@SuppressWarnings("VisibleForTests")
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
UUID uuid = UUID.randomUUID();
final String uuidString = uuid.toString();
storageReference.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
@Override
public void onSuccess(Uri uri) {
Uri dlUri = uri;
String url =dlUri.toString();
}
});
FirebaseUser user = mAuth.getCurrentUser();
String userEmail = user.getEmail().toString();
String userComment = commentText.getText().toString();
myRef.child("Posts").child(uuidString).child("useremail").setValue(userEmail);
myRef.child("Posts").child(uuidString).child("comment").setValue(userComment);
myRef.child("Posts").child(uuidString).child("downloadurl").setValue(url);
Toast.makeText(getApplicationContext(),"Post Shared",Toast.LENGTH_LONG).show();
Intent intent = new Intent(getApplicationContext(), FeedActivity.class);
startActivity(intent);
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(getApplicationContext(), e.getLocalizedMessage(),Toast.LENGTH_LONG).show();
}
});
}
【问题讨论】:
标签: java android firebase-realtime-database