将Firebase图片上传到存储空间Android error
问题描述:
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
只有一个添加按钮是存在的菜单。所以我没有在这里上传。请帮忙。
答
确保,你在火力存储启用了写入文件,而无需验证
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read, write: if request.auth == null;
}
}
}
什么日志说?来自Firebase的任何警告? – Jaco
没有警告先生..我跟着https://www.youtube.com/watch?v=x0ScnHJi8WY&list=PLGCjwl1RrtcTXrWuRTa59RyRmQ4OedWrt&index=19 –
我认为你必须仔细阅读日志...也许Firebase不允许你注册你的图片 – Jaco