# DO NOT MODIFY. This file was generated by
# github.com/GoogleCloudPlatform/google-cloud-common/testing/firestore/cmd/generate-firestore-tests/generate-firestore-tests.go.

# An ArrayRemove value can occur at any depth. In this case, the transform applies
# to the field path "b.c". Since "c" is removed from the update, "b" becomes
# empty, so it is also removed from the update.

description: "update-paths: nested ArrayRemove field"
update_paths: <
  doc_ref_path: "projects/projectID/databases/(default)/documents/C/d"
  field_paths: <
    field: "a"
  >
  field_paths: <
    field: "b"
  >
  json_values: "1"
  json_values: "{\"c\": [\"ArrayRemove\", 1, 2, 3]}"
  request: <
    database: "projects/projectID/databases/(default)"
    writes: <
      update: <
        name: "projects/projectID/databases/(default)/documents/C/d"
        fields: <
          key: "a"
          value: <
            integer_value: 1
          >
        >
      >
      update_mask: <
        field_paths: "a"
        field_paths: "b"
      >
      current_document: <
        exists: true
      >
    >
    writes: <
      transform: <
        document: "projects/projectID/databases/(default)/documents/C/d"
        field_transforms: <
          field_path: "b.c"
          remove_all_from_array: <
            values: <
              integer_value: 1
            >
            values: <
              integer_value: 2
            >
            values: <
              integer_value: 3
            >
          >
        >
      >
    >
  >
>
