2016-09-16 9 views
0

これはFirebaseの保存ルールです。新しいユーザーは別のユーザーがアップロードした写真にアクセスできます

match 
/{allPaths=**} { 
    allow read, write: if request.auth != null; 

これは、あなたが、私はファイルパス名の一部としてUIDを使用しています見ることができるように、ユーザーがストレージ

StorageReference filepathOne = mStorage.child(user_data.getString("uidkey", null)).child("Photos").child("id_one"); 

に画像を追加する方法です。私の前提は、ユーザーが自分が望む写真をアップロードするたびに、一意のUIDを持っているユーザーにしかアクセスできないということでした。しかし、私は新しいユーザーアカウントを作成しました。何らかの理由で、別のユーザーがUIDが異なっていても、そのユーザーがアップロードした写真にアクセスできるようになりました。

また、私はsharedprefにURIを格納しておき、後でピクチャを表示するためにそれを文字列に変換することを指摘しておきます。私はSharedPref

Uri downloadUrl = taskSnapshot.getDownloadUrl();       

Picasso.with(getContext()) 
    .load(downloadUrl) 
    .fit().centerCrop() 
    .into(image); 

editor.putString(user_idone, (taskSnapshot.getDownloadUrl()).toString());        
editor.commit(); 

に格納する方法

は、これはこれは私が県やディスプレイから抽出する方法です。

Picasso.with(getContext()) 
    .load(Uri.parse(user_data.getString("idonekey", null))) 
    .fit().centerCrop() 
    .into((ImageView) getView().findViewById(R.id.image)); 

答えて

0

現在、あなたのルールでは、「誰でも、認証されている限り誰でも読み書きできます」と書かれています。 user and group based securityに大きな深さで

service firebase.storage { 
    match /b/<your-bucket-name>/o { 
    match /{userId}/Photos/{fileName} { 
     allow read: if request.auth.uid == userId; 
    } 
    } 
} 

当社rules docs話:あなたはあなたのファイル構造を反映し、より厳密なセキュリティを提供するために、ルールを変更したいように聞こえます。

関連する問題