Как сделать простой поиск в строке в базе данных Firebase?

Поместите это в начало своего скрипта. Это заставит скрипт запросить у пользователя пароль. Полученный пароль можно затем использовать в другом месте вашего скрипта через $ pw .

   Param(
     [Parameter(Mandatory=$true, Position=0, HelpMessage="Password?")]
     [SecureString]$password
   )

   $pw = [Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($password))

Если вы хотите отлаживать и видеть значение пароля, которое вы только что прочитали, используйте:

   write-host $pw
29
задан Zigmārs Dzērve 27 July 2016 в 16:50
поделиться

5 ответов

В моем случае мне удалось частично добиться SQL LIKE следующим образом:

databaseReference.orderByChild('_searchLastName')
                 .startAt(queryText)
                 .endAt(queryText+"\uf8ff")

Символ \uf8ff, использованный в запросе, является очень высокой кодовой точкой в ​​диапазоне Unicode (это является кодом зоны частного использования [PUA]). Так как это после большинства обычных символов в Unicode, запрос соответствует всем значениям, которые начинаются с queryText.

Таким образом, выполняя поиск по "Fre", я мог получить записи, имеющие "Fred, Freddy, Frey" в качестве значения в свойстве _searchLastName, из базы данных.

93
ответ дан Francesco 27 July 2016 в 16:50
поделиться

Этот вопрос может быть старым, но есть документированный способ достижения этого пути. Он прост в реализации. Цитируется :

Чтобы включить полнотекстовый поиск в ваших данных Cloud Firestore, используйте стороннюю службу поиска, такую ​​как Algolia. Рассмотрим приложение для создания заметок, в котором каждая заметка является документом:

Алголия будет частью вашего firebase functions и будет выполнять все необходимые вам поиски.

// Update the search index every time a blog post is written.
exports.onNoteCreated = functions.firestore.document('notes/{noteId}').onCreate(event => {
      // Get the note document
      const note = event.data.data();

      // Add an 'objectID' field which Algolia requires
      note.objectID = event.params.noteId;

      // Write to the algolia index
      const index = client.initIndex(ALGOLIA_INDEX_NAME);
      return index.saveObject(note);
});

Для реализации поиска лучше всего использовать мгновенный поиск - android


Образец поиска изображения: GIF

1
ответ дан Lucem 27 July 2016 в 16:50
поделиться

Firebase не имеет встроенного поискового запроса, похожего на SQL. Вы можете сортировать по значениям / ключам или равняться

https://firebase.google.com/docs/database/android / retrieve-data

Примеры можно найти по ссылке выше. Это последняя документация для FireBase.

Если вы ищете SQL как поиски. Тогда взгляните на упругий поиск. Но это увеличит сложность, так как вам нужна платформа для ее установки. Для этого я мог бы порекомендовать Heroku или, возможно, GoogleCloudServers

. Здесь есть запись в блоге о расширенном поиске с упругим поиском https://firebase.googleblog.com/2014/01/queries-part-2-advanced -searches-with.html

1
ответ дан Jemil Riahi 27 July 2016 в 16:50
поделиться

Я не знаю о достоверности этого подхода, но, используя версию Firebase 10.2.6 на Android, я могу сделать что-то вроде этого:

firebaseDatabase.getReference("parent")
                            .orderByChild("childNode")
                            .startAt("[a-zA-Z0-9]*")
                            .endAt(searchString)

Иногда кажется, что это хорошо работает

0
ответ дан larrytech 27 July 2016 в 16:50
поделиться

В моем случае использовали:

var query = 'text'
databaseReference.orderByChild('search_name')
             .startAt(`%${query}%`)
             .endAt(query+"\uf8ff")
             .once("value")

Таким образом, при поиске по «test» я мог получить записи, имеющие «Test 1, Contest, One test», в качестве значения в свойстве «search» из базы данных.

-1
ответ дан Jose Miguel Aguilar Muñoz 27 July 2016 в 16:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: