Firebase PHP在字段中更新特定数组索引

Firebase PHP在字段中更新特定数组索引,php,firebase,google-cloud-firestore,Php,Firebase,Google Cloud Firestore,我不知道如何或是否可以使用自定义索引来提取数组值。 我的代码是用PHP编写的,但如果需要,我可以切换到JS 这是我的挑战: 我有一个itemarry(有许多行和不同的种类),其中包括一个更进一步的数组。 我想更改itmes数组的一个自定义行 例如,我想更改arrayindex“Items[0]”的状态和用户ID 我已经试过了 $document = $db->collection('events')->document($eventid); $document->upd

我不知道如何或是否可以使用自定义索引来提取数组值。 我的代码是用PHP编写的,但如果需要,我可以切换到JS

这是我的挑战: 我有一个itemarry(有许多行和不同的种类),其中包括一个更进一步的数组。 我想更改itmes数组的一个自定义行

例如,我想更改arrayindex“Items[0]”的状态和用户ID

我已经试过了

$document = $db->collection('events')->document($eventid);    
$document->update([
        [
            'path' => 'items.0', 'value' => FieldValue::arrayUnion([[
            'status' => '1',
            'userid' => '383747493834',
            ]])
        ]
    ]);

但在第一个示例中,Firebase无法在文档中添加新字段,在第二个示例中,添加了新行


在Firestore中,仅通过写入操作无法更新数组中特定索引处的值

如果您的用例需要此类更新,您需要:

  • 阅读Firestore中的文档
  • 从文档中获取整个数组
  • 更新该数组中的数据
  • 将整个阵列写回Firestore

  • 在Firestore中,仅通过写操作无法更新数组中特定索引处的值

    如果您的用例需要此类更新,您需要:

  • 阅读Firestore中的文档
  • 从文档中获取整个数组
  • 更新该数组中的数据
  • 将整个阵列写回Firestore

  • 谢谢,那是我的恐惧。我转向了推荐人:)谢谢,那是我的恐惧。我切换到参考资料:)
    $document->set([
            'regions' => FieldValue::arrayUnion([[
                'kind' => 'test',
                'status' => '1',
                'userid' => '383747493834',
            ]])
        ], ['merge' => true]);