0
Firebase Storageをテストしようとしています。私は手動でimages/egg.jpgをアップロードしました。Firebase Storage:パブリックアクセスでもファイルをダウンロードできない
イメージをダウンロードするためにFirebase Guideからコードをテストするための簡単なAndroidアプリケーションを作成しました。手続きを可能にする単なるボタン。
ファイルはのダウンロードに失敗したと私は取得しています、すべては「ユーザーは、このオブジェクトにアクセスする権限がありません」と言うONFAILURE(からの例外)です。
私は同様の質問を見ました。その解決策は、ルールを通して誰かに読み取りと書き込みのアクセスを許可することでした。そのため、以下のようにコピーしました。
service firebase.storage {
match /b/savephoto-a1cc3.appspot.com/o {
match /{allPaths=**} {
// Allow access by all users
allow read, write;
}
}
}
、ここactivitysコード
private StorageReference pathRef = FirebaseStorage.getInstance().getReference().child("images/egg.jpg");
private ImageView imageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.imageView = (ImageView) this.findViewById(R.id.imageView);
}
public void getImage(View v){
File localFile;
try {
localFile = File.createTempFile("images","jpg");
pathRef.getFile(localFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {
//Local temp file has been created
Toast.makeText(MainActivity.this, "Success", Toast.LENGTH_SHORT).show();
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
//handle error
Toast.makeText(MainActivity.this, e.getMessage()+"\n"+e.getCause(), Toast.LENGTH_LONG).show();
}
});
}catch (IOException exception){
Toast.makeText(this, "IOEXCEPTION", Toast.LENGTH_SHORT).show();
}
}
はちょうど私がまた、マニフェストにこれらの権限を追加してくださいすることです。
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
なぜこのファイルをダウンロードできないのですか?
「保存エラールール - ライン5:予期しない 『もし』 」私が変わっ – Skemelio
は、それだったもう一度 – Dmitry
まあを試してみてください!なにが問題だったの? – Skemelio