繁体   English   中英

如何更新 Firestore 文档中特定字段的值?

[英]How to update value of a specific field in Firestore document?

如何仅获取其 ID Android Firebase Firestore 并仅更新特定字段?

我只想更新电力的“消耗”值而不更新一台设备的所有数据。

public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
    DeviceModel modal = deviceModelArrayList.get(position);

    holder.showName.setText(modal.getDeviceName());
    holder.showWat.setText(modal.getDeviceWat());
    holder.showUse.setText(modal.getDeviceUse());


    holder.addBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            hours = Integer.parseInt(String.valueOf(holder.showUse.getText()));
            if (hours < 24) {
                holder.showUse.setText(String.valueOf(++hours));
                db.collection(currentUser)
                        .document()
                        .update("deviceWat", hours);
            }
        }
    });
}

在此处输入图像描述

每次调用.document()而不传递任何内容作为以下参考中的参数时:

db.collection(currentUser)
   .document() //👈
   .update("deviceWat", hours);

这意味着您正在生成一个全新的唯一文档 ID。 当您调用.update()时,您正在尝试更新一个实际上不存在的文档,因为您只保留了一个文档 ID,仅此而已。

如果要创建指向“currentUser”集合中特定文档的引用,则必须传递数据库中已存在的该文档的文档 ID,而不是生成新文档。 因此,要解决此问题,请获取要更新的项目的文档 ID,并将其传递给.document() function,如下所示:

db.collection(currentUser)
   .document("hnx81...803tY") //👈
   .update("deviceWat", hours);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM