首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在firebase存储中,我需要发送两次照片才能保存

在firebase存储中,我需要发送两次照片才能保存
EN

Stack Overflow用户
提问于 2018-06-17 23:09:19
回答 2查看 87关注 0票数 0

(对不起,我的英语)(对不起,如果这个问题是无关的,我是编程新手),所以我正在制作一个聊天应用程序,但当我尝试发送照片时,它不会发送,只有当我发送它两次时,它才会保存在数据库中。

下面是我在logcat中得到的警告:

代码语言:javascript
复制
06-17 17:12:27.685 927-1000/? E/WifiConfigStore: updateConfiguration freq=2442 BSSID=f4:f2:6d:67:54:e8 RSSI=-59 "TP-LINK_54E8"WPA_PSK06-17 17:12:27.831 10830-11008/com.google.firebase.udacity.friendlychat E/StorageException: StorageException has occurred.
Object does not exist at location.
 Code: -13010 HttpResult: 404
{  "error": {    "code": 404,    "message": "Not Found.  Could not get object"  }}
java.io.IOException: {  "error": {    "code": 404,    "message": "Not Found.  Could not get object"  }}
    at bha.a(:com.google.android.gms.dynamite_dynamitemodulesc@12685024@12.6.85 (040406-197041431):147)
    at bha.a(:com.google.android.gms.dynamite_dynamitemodulesc@12685024@12.6.85 (040406-197041431):119)
    at bgu.onTransact(:com.google.android.gms.dynamite_dynamitemodulesc@12685024@12.6.85 (040406-197041431):7)
    at android.os.Binder.transact(Binder.java:392)
    at com.google.android.gms.internal.firebase_storage.zza.transactAndReadExceptionReturnVoid(Unknown Source)
    at com.google.android.gms.internal.firebase_storage.zzm.zze(Unknown Source)
    at com.google.android.gms.internal.firebase_storage.zzq.zza(Unknown Source)
    at com.google.android.gms.internal.firebase_storage.zzf.zza(Unknown Source)
    at com.google.firebase.storage.zzc.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
    at java.lang.Thread.run(Thread.java:818)06-17 17:12:28.091 927-927/? E/WifiTrafficPoller: TRAFFIC_STATS_POLL true Token 1236 num clients 10
 packet count Tx=1047457 Rx=3285705 06-17 17:12:29.092 927-927/? E/WifiTrafficPoller: TRAFFIC_STATS_POLL true Token 1236 num clients 10
 packet count Tx=1047458 Rx=3285706

下面是代码:

代码语言:javascript
复制
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == RC_PHOTO_PICKER && resultCode == RESULT_OK) 
    {
        Uri selectedImageUri = data.getData();
        StorageReference photoRef = mSRreference.child(selectedImageUri.toString());
        photoRef.putFile(selectedImageUri);
        photoRef.getDownloadUrl().addOnSuccessListener(
            new OnSuccessListener<Uri>()

            @Override
            public void onSuccess(Uri uri)
            {
                Message m = new Message(null, mUsername, uri.toString());
                mDbReference.push().setValue(m);
            }
        );
    }
}

这里

EN

回答 2

Stack Overflow用户

发布于 2018-06-18 00:38:47

putFile()返回最终表示文件上传成功的UploadTask。您需要使用该任务。看起来您已经熟悉了任务,因为您已经在使用getDownloadUrl()返回的任务来确定数据何时可用。

票数 0
EN

Stack Overflow用户

发布于 2018-06-18 00:40:27

代码语言:javascript
复制
Uri selectedImageUri = data.getData();
StorageReference photoRef = mSRreference.child(selectedImageUri.toString());
photoRef.putFile(selectedImageUri).addOnSuccessListener(new 
OnSuccessListener<UploadTask.TaskSnapshot>() {
    @Override
    public void onSuccess(UploadTask.TaskSnapshot taskSnapshot){
        //taskSnapshot.getDownloadUrl()
        Message m = new Message(null, mUsername, taskSnapshot.getDownloadUrl().toString());
        mDbReference.push().setValue(m);
    }

    }).addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
        }
});

这将会完成你的工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50897898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档