Bom dia.
As regras e o código, em Java, a seguir, não funcionam. Só funciona quando insiro o código para todos os “Path” antes do “match” para um arquivo em específico.
As 2 primeiras linhas, do código em Java, é para mostrar que o usuário está autenticado.
Regras para o Storage do Firebase:
rules_version = '2';
service firebase.storage {
match /b/{bucket}/o {
// match /{allPaths=**} {
// allow read, write, delete, update: if request.auth.token.email == 'leandrocgms2015@gmail.com';
// //allow read, write: if request.auth != null;
// }
match /Users/{uid}/images/profile/profile.png {
allow read, write, update: if (request.auth.uid == uid && resource.size <= 5*1024*1024) || request.auth.token.email == 'leandrocgms2015@gmail.com';
allow delete: if request.auth.uid == uid || request.auth.token.email == 'leandrocgms2015@gmail.com';
}
}
}
Código Java:
Log.e("url", "Users/"+FirebaseAuth.getInstance().getUid()+"/images/profile/profile.png");
Log.e("User", FirebaseAuth.getInstance().getUid());
StorageReference profile = storageRef.child("Users/"+FirebaseAuth.getInstance().getUid()+"/images/profile/profile.png");
Bitmap bitmap = ((BitmapDrawable) CadastrarActivity.imgUser.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
//String extension = bitmap.get
byte[] data = baos.toByteArray();
UploadTask uploadTask = profile.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {...