Ich lehre mich selbst über FireBase-Speicher, und ich entschied mich, eine einfache App zu machen, mit der der Benutzer ein Bild auswählen und es zu Firebase hochladen kann. jedoch sobald ich das Bild auswählen, stürzt meine App zu laden und zu sagen, dass mein URI null ist, auch wenn ich es aus dem Bild bin immer ichKann Bild nicht auswählen und hochladen?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"), 1);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode != RESULT_OK) {
return;
}
if (requestCode == 1) {
final Bundle extras = data.getExtras();
if (extras != null) {
//Get image
path = extras.getParcelable("data");
}
StorageReference storageRef = FirebaseStorage.getInstance().getReference();
storageRef.putFile(path)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
// Get a URL to the uploaded content
@SuppressWarnings("VisibleForTests") Uri downloadUrl = taskSnapshot.getDownloadUrl();
Log.e("myTag", "done, " +downloadUrl);
Intent sharingIntent = new Intent(Intent.ACTION_SEND);
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Log.e("myTag", exception.toString());
}
});
}
}
mich wähle Ich habe versucht, diesen Fehler seit mehr als fünf Stunden zu lösen, und bin immer noch verwirrt, obwohl ich die Dokumente eine Milliarde Mal durchgegangen bin. Jede Hilfe wird geschätzt!
Vielen Dank für Ihre Antwort! Ich habe das ausprobiert, und jetzt änderte sich meine Ausnahme zu 'Kann nicht zu getRoot hochladen. Sie sollten auf einen Speicherort wie .getReference hochladen ('image.png'). PutFile ... ' –
Ich habe auch versucht, die Regeln in Firebase zu ändern, um zu lesen und rechts wie immer wahr, aber ich bekomme immer noch diesen Fehler . Was soll ich machen? –
@RuchirBaronia: Ich habe meine Antwort aktualisiert. Erstellen Sie Ihre Referenz in einem Unterordner von root, z. "images": 'StorageReference storageRef = FirebaseStorage.getInstance(). getReference (" Bilder ")' –