FCM маркер в форматеFirebase лексема структура и хранение
fKk623mCfkm4:APA21bG2PqYzjxkwVElcODnMdTk9BP1AoNw-
rogg8uUdK9lzIc0Ow0KVa_19PRZE85v_0VZjBPBve4PAwqX9mVstr
o2fnzWoChgOVdIRU0YvOMRniOwg-KGB5EjajqD3Szl2lBwPZQBJ
Который довольно долго.
Если вы хотите сохранить токен в MySQL и убедиться, что токен уникален, как бы это сделать? Я считаю, что строка слишком длинная для индексации. Можно ли предположить, что часть до двоеточия (в данном случае fKk623mCfkm4
) уникальна в рамках приложения? Если это так, это будет гораздо более разумным способом индексирования токена. (Только VARCHAR по-прежнему, но с CREATE UNIQUE INDEX fcm_token ON myTable myColumn(12)
)
Я понимаю, что это может быть длинным выстрелом, так: Как решить эту проблему?
Меня интересует уникальность токена, поскольку устройство может изменить владельца (или пользователя по любой причине), что потребует, чтобы токен переназначался в моей базе данных, но это сложно (безответственно), если я не могу его найти потому что он не проиндексирован.
Строка из 12 буквенно-цифровых символов может выдавать 5.906682292E37 различные результаты. Такая случайность кажется, что этого было бы достаточно, чтобы избежать столкновения в рамках одного приложения.
Редактировать: Плохая идея.
Я делаю это в настоящее время:
CREATE TABLE `devices` (
`ID` int(10) unsigned NOT NULL AUTO_INCREMENT,
`USER` int(10) unsigned NOT NULL,
`TOKEN` varchar(255) NOT NULL,
`TOKENSHA1` binary(20) DEFAULT NULL,
`MODIFIED` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`ID`),
UNIQUE KEY `TOKENSHA1` (`TOKENSHA1`),
KEY `USER` (`USER`),
KEY `MODIFIED` (`MODIFIED`)
) ENGINE=InnoDB
Это сводится к тому, что деталь перед двоеточием уникальна или нет. Если это не так, вам нужно проиндексировать весь контент. – Shadow
Да, но я не могу найти никакой информации об этом где угодно. Надеюсь, кто-то из FCM это узнает. – nickdnk
Тогда это то, что вы должны спросить. – Shadow