2016-11-07 30 views
0

Dort, Ich habe ein YouTube-Video für Firebase verfolgen eine einfache Blog-App, wo Benutzer ein Bild mit einem Titel & eine Beschreibung hochladen können. Wenn ich also auf die Submit-Schaltfläche klicke, läuft mein Fortschrittsbalken für unendliche Zeit. Ich bekomme dafür keine Lösung. Bitte hilf mir.Firebase Bild auf Speicher hochladen Android Fehler

Zwei Aktivitäten gibt es eine ist PostActivity.java und eine andere ist 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> 

in MainAcitivity.java nur ein Add-Taste befindet sich im Menü gibt. also habe ich es hier nicht hochgeladen. bitte hilfe.

+0

Was sagt die Protokolldatei zu schreiben? irgendeine Warnung von Firebase? – Jaco

+0

keine Warnung Sir .. Ich folgte https://www.youtube.com/watch?v=x0ScnHJi8WY&list=PLGCjwl1RrtcTXrWuRTa59RyRmQ4OedWrt&index=19 –

+0

Ich glaube, Sie sorgfältig die Log versuchen müssen, lesen ... Vielleicht ist Feuerbasis nicht so dass Sie registrieren Ihre image – Jaco

Antwort

0

Stellen Sie sicher, Sie haben in Feuerbasis Speicher aktiviert, ohne Authentifizierung

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