Как добраться 5км выносом данных из опорного пункта, используя фреймворк Laravel 6 с помощью Kreait\поставщика военнослужащих

Как добраться 5км выносом данных из опорного пункта, используя фреймворк Laravel 6 с помощью Kreait\поставщика военнослужащих

17.12.2019 03:51:19 Просмотров 48 Источник

Я использую laravel 6, и я установил поставщик Kreait\Firebase в моем пакете laravel. я уже создал соединение с базой данных firebase realtime и получаю данные из своей базы данных. но мне нужна поддержка от ваших парней, чтобы получить данные о конкретном радиусе oa. пожалуйста, помогите мне thanx заранее. Я использовал ниже код, чтобы получить данные

$serviceAccount = ServiceAccount::fromJsonFile(public_path().'/gogorides-f382d11-firebase-adminsdk-f8od3-46c809e52e.json');
    $firebase = (new Factory)
    ->withServiceAccount($serviceAccount)
    ->withDatabaseUri('https://gogorides-f382d.firebaseio.com/')
    ->create();

    $database  = $firebase->getDatabase();
    $reference = $database->getReference('drivers')->orderByChild('id')->limitToFirst(2)->getSnapshot()->getValue();
    print_r($reference);
У вопроса есть решение - Посмотреть?

Ответы - Как добраться 5км выносом данных из опорного пункта, используя фреймворк Laravel 6 с помощью Kreait\поставщика военнослужащих / How to get 5Km radious of data from firebase using laravel 6 by using Kreait\Firebase provider

Frank van Puffelen

17.12.2019 05:16:04

База данных Firebase Realtime не имеет собственной поддержки для таких так называемых geoqueries, которые возвращают элементы в определенном диапазоне заданной точки.


Во многих базах данных вы бы приблизили этот тип запроса, фильтруя определенный диапазон широты и долготы. Что-то вроде:

latitude >= 120.0 && latitude <= 120.5 &&
longitude >= 78.3 && longitude <= 79.1

К сожалению, с базой данных Firebase Realtime вы можете запрашивать только одно свойство за раз. Таким образом, без дополнительных трюков вы можете фильтровать широту или долготу в базе данных, и вам придется фильтровать другую сторону клиента.


К счастью, есть надстройка над библиотекой на базе опорного пункта в реальном времени, под названием GeoFire, который добавляет дополнительные хитрости. Он добавляет дополнительное свойство к базе данных, которое объединяет широту и долготу таким образом, что позволяет фильтровать их в одном запросе. Такое значение называется георешеткой .

Библиотека GeoFire доступна для iOS, Android и интернета . К сожалению, он не существует для PHP.


Это оставляет вам несколько вариантов:

  1. Реализуйте логику внутри веб-клиента (в JavaScript), а не на веб-сервере (в PHP).
  2. Перенесите логику GeoFire на PHP. Если вы заинтересованы в этом, я рекомендую проверить видео моего выступления на Geoqueries на Firebase и Firestore .
https://stackoverflow.com/questions/59374644/how-to-get-5km-radious-of-data-from-firebase-using-laravel-6-by-using-kreait-fir/59376159#comment104962485_59376159
Thanx frank, позвольте мне попробовать один раз с вашей концепцией
Помочь в развитии проекта:
Закрыть X