2016-11-07 104 views
0

There, 我一直在关注Firebase的YouTube视频制作简单的博客应用,用户可以在其中上传一个图片的图像&一些说明。所以当我点击提交按钮时,我的进度条保持循环无限的时间。我没有得到任何解决方案。请帮帮我。将Firebase图片上传到存储空间Android error

两项活动都是有一个是PostActivity.java,另一个是MainActivity.Java

PostActivity.java: -

public class PostActivity extends AppCompatActivity { 

    private ImageButton img_btn_add_photo; 
    private EditText et_post_title,et_post_description; 
    private Button btn_post_submit; 

    private Uri mImageUri = null; 

    private static final int GALLERY_REQUEST = 1; 
    private ProgressDialog mProgressDialog; 
    private StorageReference mStorage; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_post); 

     mStorage = FirebaseStorage.getInstance().getReference(); 

     mProgressDialog = new ProgressDialog(this); 

     et_post_title = (EditText) findViewById(R.id.et_post_title); 
     et_post_description = (EditText) findViewById(R.id.et_post_description); 

     btn_post_submit = (Button) findViewById(R.id.btn_post_submit); 

     img_btn_add_photo = (ImageButton) findViewById(R.id.img_btn_add_photo); 
     img_btn_add_photo.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent galleryIntent = new Intent(Intent.ACTION_GET_CONTENT); 
       galleryIntent.setType("image/*"); 
       startActivityForResult(galleryIntent,GALLERY_REQUEST); 
      } 
     }); 


     btn_post_submit.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       submitToDB(); 
      } 
     }); 

    } 

    private void submitToDB() { 


     mProgressDialog.setMessage("Submitting Post..."); 
     mProgressDialog.show(); 

     final String title = et_post_title.getText().toString().trim(); 
     final String descr = et_post_description.getText().toString().trim(); 

     if (!TextUtils.isEmpty(title) && !TextUtils.isEmpty(descr) && mImageUri != null){ 

      StorageReference filePath = mStorage.child("Blog_Images").child(mImageUri.getLastPathSegment()); 
      filePath.putFile(mImageUri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { 
       @Override 
       public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { 

        Uri downloadUri = taskSnapshot.getDownloadUrl(); 

        mProgressDialog.dismiss(); 

       } 
      }); 

     } 

    } 

    @Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
     super.onActivityResult(requestCode, resultCode, data); 


     if (requestCode == GALLERY_REQUEST && resultCode == RESULT_OK){ 

      mImageUri = data.getData(); 
      img_btn_add_photo.setImageURI(mImageUri); 

     } 

    } 
} 

Manifest.xml

<uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".PostActivity"></activity> 
    </application> 

</manifest> 

MainAcitivity.java只有一个添加按钮是存在的菜单。所以我没有在这里上传。请帮忙。

+0

什么日志说?来自Firebase的任何警告? – Jaco

+0

没有警告先生..我跟着https://www.youtube.com/watch?v=x0ScnHJi8WY&list=PLGCjwl1RrtcTXrWuRTa59RyRmQ4OedWrt&index=19 –

+0

我认为你必须仔细阅读日志...也许Firebase不允许你注册你的图片 – Jaco

回答

0

确保,你在火力存储启用了写入文件,而无需验证

service firebase.storage { 
    match /b/{bucket}/o { 
    match /{allPaths=**} { 
     allow read, write: if request.auth == null; 
    } 
    } 
} 
相关问题