Для качественного решения NodeJS / Javascript см. модуль id-shortener , который тщательно протестирован и использовался в производстве в течение нескольких месяцев.
Он обеспечивает эффективный идентификатор / url shorter, поддерживаемый подключаемым хранилищем, по умолчанию используется redis, и вы даже можете настроить свой короткий набор символов id, и будет ли сокращение idempotent . Это важное различие, которое не учитывают не все укороченные URL.
В отношении других ответов здесь этот модуль реализует превосходный принятый ответ Марселя Джекверта выше.
Ядро решение предоставляется следующим фрагментом Redis Lua :
local sequence = redis.call('incr', KEYS[1])
local chars = '0123456789ABCDEFGHJKLMNPQRSTUVWXYZ_abcdefghijkmnopqrstuvwxyz'
local remaining = sequence
local slug = ''
while (remaining > 0) do
local d = (remaining % 60)
local character = string.sub(chars, d + 1, d + 1)
slug = character .. slug
remaining = (remaining - d) / 60
end
redis.call('hset', KEYS[2], slug, ARGV[1])
return slug
В настоящее время отправлять сообщения из самого приложения невозможно. Вы можете отправлять сообщения с веб-консоли Firebase или с настраиваемого сервера с использованием API-интерфейсов на стороне сервера.
Что вы можете сделать - это связаться с сервером (например, через HTTP-вызов), и этот сервер будет отправьте сообщение пользователю. Таким образом, убедитесь, что API-ключ сервера защищен.
PS: sendMessage(..)
api вызывается восходящей функцией и может использоваться для отправки сообщений из вашего приложения на ваш сервер, если сервер имеет соединение XMPP с сервером FCM.
Использовать oneignal, вы можете отправлять устройства на уведомления или устройства на сегменты, он может работать с firebase таким образом. Используйте функции oneignal для создания определенного идентификатора, сохранения его в базе данных firebase, а затем, когда идентификатор можно поместить в другой функция, которая используется для отправки уведомления. Примечания: 1-я использую его в своих приложениях с firebase, отлично работает 2-я могу отправить этот код, просто комментарии, чтобы я мог найти этот ответ
Облачные функции Google теперь позволяют отправлять push-уведомления с устройства на устройство без сервера приложений.
В документации по облачным функциям Google:
< blockquote>Разработчики могут использовать функции облака, чтобы пользователи могли общаться и получать актуальную информацию о приложении. Рассмотрим, например, приложение, которое позволяет пользователям следить за действиями друг друга в приложении. В таком приложении функция, инициированная записью базы данных Realtime для хранения новых подписчиков, может создавать уведомления Firebase Cloud Messaging (FCM), чтобы сообщить соответствующим пользователям, что они получили новых подписчиков.
Пример:
Вот демонстрационный проект для отправки push-уведомлений устройства на устройство с помощью Firebase и облачных функций Google.
Да, вы можете отправить push-уведомление через Firebase. Пожалуйста, не включайте серверный ключ в свой клиент. Есть способы «для не очень хороших людей» найти его и сделать что-то ... Правильный способ добиться этого - это для вашего клиента указание вашему приложению-серверу отправить уведомление.
Вы должны отправьте HTTP-сообщение в конечную точку Google-API.
Вам понадобятся следующие заголовки:
Content-Type: application/json
Authorization: key={your_server_key}
You can obtain your server key within in the Firebase-Project.
HTTP-Post-Content: Sample
{
"notification": {
"title": "Notification Title",
"text": "The Text of the notification."
},
"project_id": "<your firebase-project-id",
"to":"the specific client-device-id"
}