Невозможно указать идентификатор документа при создании документа в Firestore

Я пытаюсь создать узел в Google Firebase и использовать его уникальный идентификатор для создания документа в Google Firestore с тем же именем.

Я использую Google Firestore Client: https://github.com/GoogleCloudPlatform/google-cloud-php-firestore

И я прочитал их документацию: http://googlecloudplatform.github.io/google-cloud-php/#/docs/cloud-firestore/v0.5.1/firestore/writebatch

Вот мой код:

<?php

use \Google\Cloud\Firestore\FirestoreClient;
use \Google\Cloud\Core\Timestamp;
use \Google\Cloud\Firestore\Transaction as FirestoreTransaction;
use \grptx\Firebase as FirebaseClient;

class FirestoreTest
{
public function create()
{
$client = new FirebaseClient();
$database = $client->getDatabase();

$org = array(
"acl" => array(),
"people" => array()
);

$ref = $database->getReference("/clients/")->push($org);
$key = $ref->getKey();

$config = array(
"projectId" => "xxx",
"keyFile" => json_decode(file_get_contents("/xxx/firebase_auth.json"), true)
);

$firestore = new FirestoreClient($config);
$batch = $firestore->batch();
$batch->create("/clients/".$key, [
'organization_ID' => $key
]);

print_r($key); // this key gets generated, no errors occur.
}
}

Это версия PHP, которую я использую:

php -v
PHP 7.1.10-1+ubuntu14.04.1+deb.sury.org+1 (cli) (built: Sep 29 2017 17:33:22) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.10-1+ubuntu14.04.1+deb.sury.org+1, Copyright (c)
1999-2017, by Zend Technologies

0

Решение

Вам, вероятно, не нужен пакет записи для одной записи:

$docRef = $firestore->collection('clients')->document($key);
$docRef->set(['organization_ID' => $key]);

Кроме того, проверьте документы. Мы добавили примеры PHP:

https://cloud.google.com/firestore/docs/manage-data/add-data

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]