【问题标题】:How to add a few field to firestore document如何在 Firestore 文档中添加一些字段
【发布时间】:2022-01-07 11:20:32
【问题描述】:

我想使用 HashMap 在现有的 firestore 文档中添加一些字段。 首先我创建了firestore db{collection("UsersProfile").document(currentUserID)} 并使用了set() 方法,然后为了添加字段(key, value),我使用了update() 方法。但未添加 Field 值。

我希望你的帮助。谢谢。

private void SaveAccountSetupInformation()
{
    username = Username.getText().toString();
    nickname = Nickname.getText().toString();
    userDescription = UserDescription.getText().toString();

    if (TextUtils.isEmpty(username))
    {
        Toast.makeText(this, "이름이나 닉네임 자기소개를 하세요", Toast.LENGTH_SHORT).show();

        // Intent selfIntent = new Intent(SetupActivity.this, SetupActivity.class);
        // startActivity(selfIntent)
    }
    else if(TextUtils.isEmpty(nickname))
    {

    }
    else if(TextUtils.isEmpty(userDescription))
    {

    }
    else
    {

        Calendar calForDate = Calendar.getInstance();
        SimpleDateFormat currentDate = new SimpleDateFormat("dd-MMMM-yyyy");
        saveCurrentDate = currentDate.format(calForDate.getTime());

        HashMap<String, Object> profileMap = new HashMap<String, Object>();


        profileMap.put("username", username);
        profileMap.put("nickname", nickname);
        profileMap.put("userDescription", userDescription);
        profileMap.put("currentUserID", currentUserID);
        profileMap.put("date", saveCurrentDate);


        db.collection("UsersProfile").document(currentUserID)
                .set(profileMap)
                .addOnSuccessListener(new OnSuccessListener<Void>() {
                    @Override
                    public void onSuccess(Void unused) {

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

            }
        });


    }

}

ente cropActivityResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {
                    if (result.getResultCode() == Activity.RESULT_OK) {
                        //image picked, get uri of image
                        Intent data = result.getData();
                        assert data != null;
                        imageUri = data.getData();
                        //profileIv.setImageUri(imageUri);
                        CropImage.activity(imageUri)
                                .setGuidelines(CropImageView.Guidelines.ON)
                                .setAspectRatio(1, 1)
                                .setCropMenuCropButtonTitle("저장하기")
                                .start(SetupActivity.this);

                        ProfileImage.setImageURI(imageUri);

                    }
                    if (result.getResultCode() == Activity.RESULT_OK)
                    {

                        Uri resultUri = result.getData().getData();

                        StorageReference filePath = UserProfileImageRef.child(currentUserID + ".jpg");

                        final UploadTask uploadTask = filePath.putFile(resultUri);
                        uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                            @Override
                            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                taskSnapshot.getStorage().getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                                    @Override
                                    public void onSuccess(Uri uri) {
                                        final String downloadUrl = uri.toString();


                                        HashMap<String, Object> profileImageMap = new HashMap<>();
                                        profileImageMap.put("profileImage", downloadUrl);

                                        DocumentReference ProfileImageDocRef = db.collection("UsersProfile").document(currentUserID);
                                        ProfileImageDocRef
                                                .update(profileImageMap)
                                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                                    @Override
                                                    public void onSuccess(Void unused) {

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

                                            }
                                        });

                                    }
                                });
                            }
                        });
                    } else if (result.getResultCode() == CropImage.CROP_IMAGE_ACTIVITY_REQUEST_CODE)
                    {
                        Toast.makeText(SetupActivity.this, "갤러리사진 다시 가져오새요", Toast.LENGTH_SHORT).show();
                    }
                }


            });


    activityResultLauncherFirst = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
        @Override
        public void onActivityResult(ActivityResult result) {
            if (result.getData() != null) {
                if (result.getResultCode() == Activity.RESULT_OK) {
                    FirstPostUri = result.getData().getData();
                    ImageViewFirst.setImageURI(FirstPostUri);

                    if (result.getResultCode() == RESULT_OK) {

                        StorageReference filePath1 = UserPictureImageRef.child(currentUserID + "1.jpg");

                        final UploadTask uploadTask1 = filePath1.putFile(FirstPostUri);
                        uploadTask1.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                            @Override
                            public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                                taskSnapshot.getStorage().getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                                    @Override
                                    public void onSuccess(Uri uri) {
                                        final String downloadUrl1 = uri.toString();

                                        HashMap<String, Object> pictureOneMap = new HashMap<>();
                                        pictureOneMap.put("pictureOne", downloadUrl1);

                                         db.collection("UsersProfile").document(currentUserID)
                                                .update(pictureOneMap)
                                                .addOnSuccessListener(new OnSuccessListener<Void>() {
                                                    @Override
                                                    public void onSuccess(Void unused) {

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

                                            }
                                        });

                                    }
                                });
                            }
                        });
                    } else
                    {
                        Toast.makeText(SetupActivity.this, "갤러리사진 다시 가져오새요", Toast.LENGTH_SHORT).show();
                    }

                }

            }


        }
    });r code here

【问题讨论】:

  • 首先,停止忽略错误。使用Log.d(TAG, error.getMessage());。您是否在 logcat 中打印了一些内容?
  • 我想在 db.collection("UsersProfile").document(currentUserID) 中添加五个字段(profileImage、pictureOne、pictureTwo、pictureThree、pictureFour)。但是其中两三个被添加到文档中(currentUserId)。
  • SetupActivity$_25134#0](id:3ad0000968e,api:0,p:-1,c:941) 断开连接:未连接 (req=1)

标签: android google-cloud-firestore


【解决方案1】:
2022-01-08 09:36:20.663 30708-32646/? E/TaskPersister: File error accessing recents directory (directory doesn't exist?).

2022-01-08 09:36:20.834 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键 (10)0x2010101->10948[I] (10)0x30000->launch[S] 的数据 2022-01-08 09:36:20.835 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10948[I] (10)0x30000->launch[S] 2022-01-08 09:36:21.023 26545-26570/? E/TUI_SERVICE_JNI: socket_wrapper_create_client[line: 122] 连接到 tuill_iwd_server 失败,errno: 111 2022-01-08 09:36:21.133 30708-30765/? E/Native_CFMS:nativePerfMgrRemoveTask 失败 tid:2445 返回:-1 2022-01-08 09:36:21.136 941-2393/? E/BufferQueueProducer:com.sec.android.gallery3d/com.samsung.android.gallery.app.activity.external.GalleryExternalActivity$_2445#0 断开连接:未连接(req=1) 2022-01-08 09:36:21.588 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:21.589 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:21.624 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:21.629 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:21.640 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:21.678 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:21.694 3067-3067/? E/pageboostd:收到 HALT 命令代码 2 2022-01-08 09:36:21.707 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:21.737 30535-30560/? E/HYPER-HAL: [Request.cpp]acquire(): Request:: id : 472181837, No Resource to set 2022-01-08 09:36:21.738 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:21.738 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:21.778 816-816/? E/审计:类型=1400审计(1641602181.774:1114790):avc:拒绝{读取}对于pid=1304 comm="Thread-171" name="unix" dev="proc" ino=4026531964 scontext=u:r: untrusted_app:s0:c115,c259,c512,c768 tcontext=u:object_r:proc_net:s0 tclass=文件许可=0 SEPF_SM-G991N_11_0010 audit_filtered 2022-01-08 09:36:21.778 816-816/? E/审计:类型=1300 审计(1641602181.774:1114790):arch=c00000b7 syscall=56 成功=没有退出=-13 a0=ffffff9c a1=735bfb23a1 a2=0 a3=0 items=1 ppid=30481 pid=1304 auid= 4294967295 uid=10883 gid=10883 euid=10883 suid=10883 fsuid=10883 egid=10883 sgid=10883 fsgid=10883 tty=(none) ses=4294967295 comm="Thread-171" exe="/system/bin/app_process6 subj=u:r:untrusted_app:s0:c115,c259,c512,c768 key=(null) 2022-01-08 09:36:21.778 816-816/? E/审计: type=1302 audit(1641602181.774:1114790): item=0 name="/proc/self/net/unix" inode=4026531964 dev=00:05 mode=0100444 ouid=0 ogid=0 rdev=00: 00 obj=u:object_r:proc_net:s0 nametype=NORMAL cap_fp=0 cap_fi=0 cap_fe=0 cap_fver=0 cap_frootid=0 2022-01-08 09:36:21.778 816-816/? E/审计:type=1327审计(1641602181.774:1114790):proctitle="com.tmon" 2022-01-08 09:36:22.023 26545-26570/? E/TUI_SERVICE_JNI: socket_wrapper_create_client[line: 122] 连接到 tuill_iwd_server 失败,errno: 111 2022-01-08 09:36:22.087 941-985/? E/BufferQueueProducer:com.mainTopPartners.jakiya_sun/com.mainTopPartners.jakiya_sun.SetupActivity$_2793#0 断开连接:未连接(req=1) 2022-01-08 09:36:22.107 30708-1008/? E/WindowManager: win=Window{f3cd9d5 u0 com.mainTopPartners.jakiya_sun/com.mainTopPartners.jakiya_sun.SetupActivity} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android。 server.wm.ActivityRecord.destroySurfaces:5251 com.android.server.wm.ActivityRecord.destroySurfaces:5232 com.android.server.wm.ActivityRecord.notifyAppStopped:5291 com.android.server.wm.ActivityRecord.activityStopped:5918 com. android.server.wm.ActivityTaskManagerService.activityStopped:2595 android.app.IActivityTaskManager$Stub.onTransact:2223 android.os.Binder.execTransactInternal:1190 2022-01-08 09:36:22.110 30708-30765/? E/Native_CFMS:nativePerfMgrRemoveTask 失败 tid:2793 返回:-1 2022-01-08 09:36:22.505 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:22.506 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:22.507 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键 (10)0x2010101->10948[I] (10)0x30000->launch[S] 的数据 2022-01-08 09:36:22.507 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10948[I] (10)0x30000->launch[S] 2022-01-08 09:36:22.508 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:22.508 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:22.513 30708-31039/? E/PkgPredictorService-Collector: 记录改变 bt=1 wifi=1 screen=0 2022-01-08 09:36:22.748 30487-30559/? E/Netd: getNetworkForDns: getNetId from enterpriseCtrl is netid 0 2022-01-08 09:36:22.751 30487-30565/? E/Netd: getNetworkForDns: getNetId from enterpriseCtrl is netid 0 2022-01-08 09:36:22.810 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键 (10)0x2010101->10948[I] (10)0x30000->launch[S] 的数据 2022-01-08 09:36:22.810 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10948[I] (10)0x30000->launch[S] 2022-01-08 09:36:23.024 26545-26570/? E/TUI_SERVICE_JNI: socket_wrapper_create_client[line: 122] 连接到 tuill_iwd_server 失败,errno: 111 2022-01-08 09:36:23.115 30708-30765/? E/Native_CFMS:nativePerfMgrRemoveTask 失败 tid:30856 返回:-1 2022-01-08 09:36:23.125 941-986/? E/BufferQueueProducer:com.google.android.documentsui/com.android.documentsui.picker.PickActivity$_30856#0 断开连接:未连接(req=1) 2022-01-08 09:36:23.537 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:23.538 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:23.579 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:23.585 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:23.594 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:23.648 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:23.670 3067-3067/? E/pageboostd:收到 HALT 命令代码 2 2022-01-08 09:36:23.690 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:23.713 30535-30560/? E/HYPER-HAL: [Request.cpp]acquire(): Request:: id : 472181837, No Resource to set 2022-01-08 09:36:23.713 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:23.714 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:24.025 26545-26570/? E/TUI_SERVICE_JNI: socket_wrapper_create_client[line: 122] 连接到 tuill_iwd_server 失败,errno: 111 2022-01-08 09:36:24.073 941-987/? E/BufferQueueProducer:com.mainTopPartners.jakiya_sun/com.mainTopPartners.jakiya_sun.SetupActivity$_2793#0 断开连接:未连接(req=1) 2022-01-08 09:36:24.091 30708-1942/? E/WindowManager: win=Window{f3cd9d5 u0 com.mainTopPartners.jakiya_sun/com.mainTopPartners.jakiya_sun.SetupActivity} destroySurfaces: appStopped=true win.mWindowRemovalAllowed=false win.mRemoveOnExit=false win.mViewVisibility=8 caller=com.android。 server.wm.ActivityRecord.destroySurfaces:5251 com.android.server.wm.ActivityRecord.destroySurfaces:5232 com.android.server.wm.ActivityRecord.notifyAppStopped:5291 com.android.server.wm.ActivityRecord.activityStopped:5918 com. android.server.wm.ActivityTaskManagerService.activityStopped:2595 android.app.IActivityTaskManager$Stub.onTransact:2223 android.os.Binder.execTransactInternal:1190 2022-01-08 09:36:24.093 30708-30765/? E/Native_CFMS:nativePerfMgrRemoveTask 失败 tid:2793 返回:-1 2022-01-08 09:36:24.474 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:24.475 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:24.477 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键 (10)0x2010101->10948[I] (10)0x30000->launch[S] 的数据 2022-01-08 09:36:24.478 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10948[I] (10)0x30000->launch[S] 2022-01-08 09:36:24.478 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:24.478 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:24.492 30708-31039/? E/PkgPredictorService-Collector: 记录改变 bt=1 wifi=1 screen=0 2022-01-08 09:36:24.685 30708-32646/? E/TaskPersister:访问最近目录的文件错误(目录不存在?)。 2022-01-08 09:36:24.822 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键 (10)0x2010101->10948[I] (10)0x30000->launch[S] 的数据 2022-01-08 09:36:24.822 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10948[I] (10)0x30000->launch[S] 2022-01-08 09:36:25.026 26545-26570/? E/TUI_SERVICE_JNI: socket_wrapper_create_client[line: 122] 连接到 tuill_iwd_server 失败,errno: 111 2022-01-08 09:36:25.129 30708-30765/? E/Native_CFMS:nativePerfMgrRemoveTask 失败 tid:30856 返回:-1 2022-01-08 09:36:25.133 941-985/? E/BufferQueueProducer:com.google.android.documentsui/com.android.documentsui.picker.PickActivity$_30856#0 断开连接:未连接(req=1) 2022-01-08 09:36:25.600 833-845/? E/statsd:谓词 -7037417284711607308 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:25.601 833-845/? E/statsd:谓词 5980654721335871649 删除维度键的数据 (10)0x2010101->10079[I] (10)0x30000->launch[S] 2022-01-08 09:36:25.636 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:25.640 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:25.649 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:25.695 30856-30856/? E/oid.documentsu:没有为 ID 0xffffffff 找到包 ID ff。 2022-01-08 09:36:25.711 3067-3067/? E/pageboostd:收到 HALT 命令代码 2 2022-01-08 09:36:25.738 30856-30856/? E/oid.documentsu: 找不到 ID 0xffffffff 的包 ID ff。

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-22
  • 2020-04-25
  • 2018-11-16
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 2022-10-01
相关资源
最近更新 更多