Представление данных в Firebase PHP - arrayValue, mapValue - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь отправить данные в БД пожарного хранилища, используя PHP и API Google.

Внутри документации и примеров, которые я видел в Интернете, я могу использовать mapValue и arrayValueпри отправке данных.

Я использую следующий пример: -

[
    "orderName" => [
        "stringValue" => "Gbeila Aliu Wahab"
    ],
    "orderLocationName" => [
        "stringValue" => "Accra Mall Limited"
    ],
    "orderTotalAmount" => [
        "doubleValue" => 150.5
    ],
    "orderDescription" => [
        "stringValue" => "Lorem Ipsum is simply dummy text of the printing and typesetting industry"
    ],
    "orderLocationGeoPoints" => [
        "geoPointValue" => (object) [
            "latitude" => 5.5557, 
            "longitude" => -0.1963
        ]
    ],
    "orderStatus" => [
        "stringValue" => "NotAssigned"
    ],
]

Это прекрасно работает, но когда я пытаюсь отправить объект или массив, я получаю следующую ошибкувернулся ко мне: -

"message": "Invalid JSON payload received. Unknown name \"map_value\" at 'document.fields[0].value': Proto field is not repeating, cannot start list.",

при попытке отобразить значение, используя следующий код: -

"orderName" => [
    "mapValue" => ["Gbeila Aliu Wahab", 123]
]

// or

"orderName" => [
    "arrayValue" => [
        "first" => [
            "stringValue" => "test"
        ], 
        "second" => [
            "stringValue" => "test123"
        ]
    ]
]

Я пробовал много вариантов, чтобы попытаться заставить это работать.

Как я должен использовать mapValue и arrayValue Я вижу много упоминаний о значении параметра, но я не вижу примеров того, как использовать.

Любая помощьбудет принята с благодарностью.

1 Ответ

0 голосов
/ 24 февраля 2019

Полезная нагрузка на ваш массив или карту, которую вы генерируете, неверна согласно документации. Вам нужно обернуть ваши фактические данные (для хранения) в ключе values, ваш окончательный массив должен быть:

["orderName" => ["arrayValue" => ["values" => [["stringValue" => "test"], ["stringValue" => "test123"]]]]]

Точно так же ваш mapValue должен быть

["orderName" => ["mapValue" => ["fields" => ["field1" => ["stringValue" => "Gbeila Aliu Wahab"]]]]]

Кроме того, вы можете играть с другим картографом данных через этот пакет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...