Как добраться 5км выносом данных из опорного пункта, используя фреймворк Laravel 6 с помощью Kreait\поставщика военнослужащих
Я использую 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

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.
Это оставляет вам несколько вариантов:
- Реализуйте логику внутри веб-клиента (в JavaScript), а не на веб-сервере (в PHP).
- Перенесите логику GeoFire на PHP. Если вы заинтересованы в этом, я рекомендую проверить видео моего выступления на Geoqueries на Firebase и Firestore .
