【发布时间】:2019-06-29 13:21:00
【问题描述】:
我在我的 Android 应用中使用过这个库
implementation 'com.google.firebase:firebase-core:17.0.0'
implementation 'com.google.firebase:firebase-firestore:20.0.0'
implementation 'com.google.firebase:firebase-storage:18.0.0'
这个方法用来将我的图片上传到 Firebase 存储:
StorageReference storageRef = mStorage.getReference();
finalStorageReference mountainsRef = storageRef.child("myImgName");
Uri file = Uri.fromFile(new File(myImgName));
UploadTask uploadTask = mountainsRef.putFile(file);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
// Handle unsuccessful uploads
progressDialog.dismiss();
Log.e(TAG, "img Error :" + exception.getMessage());
//Toast.makeText(MainActivity.this, "Failed "+e.getMessage(), Toast.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
progressDialog.dismiss();
//Log.e(TAG, "Task :" + taskSnapshot.getTask());
//Log.e(TAG, "Class Store:" + taskSnapshot.getStorage().getDownloadUrl());
Log.e(TAG,"metaData :"+taskSnapshot.getMetadata().getPath());
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, etc.
// ...
}
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(UploadTask.TaskSnapshot taskSnapshot) {
double progress = (100.0 * taskSnapshot.getBytesTransferred() / taskSnapshot
.getTotalByteCount());
progressDialog.setMessage("Uploaded " + (int) progress + "%");
}
});
这段代码非常适合我上传图片。但是怎么知道图片位置的url呢?
【问题讨论】:
-
请注意,Cloud Storage for Firebase(最初称为 Firebase Storage)与 Cloud Firestore 不同。存储是一种文件存储解决方案,而后者是一个 NoSQL 数据库。您正在调用存储 API,因此请相应地标记(就像我一样)
标签: android firebase firebase-storage