Package com.simplicite.util.tools
Class GoogleFirebaseTool
- java.lang.Object
-
- com.simplicite.util.tools.GoogleFirebaseTool
-
public class GoogleFirebaseTool extends java.lang.Object
Google Firebase toolbox
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
ALL_USERS_TOPIC
static java.lang.String
ERR_APNS_AUTH_ERROR
static java.lang.String
ERR_INTERNAL
static java.lang.String
ERR_INVALID_ARGUMENT
static java.lang.String
ERR_NOT_FOUND
static java.lang.String
ERR_PERMISSION_DENIED
static java.lang.String
ERR_QUOTA_EXCEEDED
static java.lang.String
ERR_RESOURCE_EXHAUSTED
static java.lang.String
ERR_SENDER_ID_MISMATCH
static java.lang.String
ERR_UNAUTHENTICATED
static java.lang.String
ERR_UNAVAILABLE
static java.lang.String
ERR_UNREGISTERED
static java.lang.String
FIREBASE_TOKENS
static long
TTL_DAY
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static void
clear()
Reset the FirebaseAppstatic java.util.Map<java.lang.String,java.util.List<java.lang.String>>
getAllDeviceTokens(java.lang.String oneLogin)
Search all users with device tokensstatic com.google.firebase.FirebaseApp
getApp()
Firebase application based on FIREBASE_CONFIGstatic java.util.List<java.lang.String>
getDeviceTokens(java.lang.String login)
List all registered device of a userstatic com.google.firebase.messaging.Message.Builder
getNotifBuilder(java.lang.String title, java.lang.String body, boolean high, long ttl, java.lang.String sound, java.lang.String color, java.lang.String icon, java.util.Map<java.lang.String,java.lang.String> map)
Get notification builderstatic boolean
init()
Init Firebase service based on FIREBASE_PRIVATE_KEYstatic boolean
init(Grant g, java.lang.String key)
Init Firebase servicestatic void
refreshToken(Grant g, java.lang.String token, java.lang.String oldToken)
Refresh the user's firebase tokenstatic void
removeToken(java.lang.String login, java.lang.String token)
Remove a user's firebase tokenstatic void
sendMessage(Grant g, java.lang.String title, java.lang.String body, boolean allUsers, java.util.List<java.lang.String> logins, java.util.List<java.lang.String> groups, java.lang.String object, java.lang.String rowId)
Send a messagestatic void
sendMessage(Grant g, java.lang.String title, java.lang.String body, java.lang.String icon, boolean allUsers, java.util.List<java.lang.String> logins, java.util.List<java.lang.String> groups, java.lang.String object, java.lang.String rowId)
Send a messagestatic void
sendMessage(Grant g, org.json.JSONObject data)
Send a messagestatic java.lang.String
sendToAllUsers(java.lang.String title, java.lang.String body, java.util.Map<java.lang.String,java.lang.String> map)
Send a notification to 'allUsers' topicstatic java.lang.String
sendToTopic(java.lang.String topic, java.lang.String title, java.lang.String body, java.util.Map<java.lang.String,java.lang.String> map)
Send a notification to single userstatic java.lang.String
sendToUser(java.lang.String login, java.lang.String token, java.lang.String title, java.lang.String body, java.util.Map<java.lang.String,java.lang.String> map)
Send a notification to single user (token will be removed if unknown in Firebase)static void
service(Grant g, org.json.JSONObject data)
Service wrapperstatic void
subscribeToTopic(java.util.List<java.lang.String> tokens, java.lang.String topic)
Subscribe a list of device tokens to topic on Firebase.static void
syncTopics(java.lang.String oneLogin)
Synchronize topicsstatic void
unsubscribeFromTopic(java.util.List<java.lang.String> tokens, java.lang.String topic)
Unsubscribe a list of device tokens from topic on Firebase.
-
-
-
Field Detail
-
ALL_USERS_TOPIC
public static final java.lang.String ALL_USERS_TOPIC
- See Also:
- Constant Field Values
-
FIREBASE_TOKENS
public static final java.lang.String FIREBASE_TOKENS
- See Also:
- Constant Field Values
-
TTL_DAY
public static final long TTL_DAY
- See Also:
- Constant Field Values
-
ERR_NOT_FOUND
public static final java.lang.String ERR_NOT_FOUND
- See Also:
- Constant Field Values
-
ERR_PERMISSION_DENIED
public static final java.lang.String ERR_PERMISSION_DENIED
- See Also:
- Constant Field Values
-
ERR_RESOURCE_EXHAUSTED
public static final java.lang.String ERR_RESOURCE_EXHAUSTED
- See Also:
- Constant Field Values
-
ERR_UNAUTHENTICATED
public static final java.lang.String ERR_UNAUTHENTICATED
- See Also:
- Constant Field Values
-
ERR_APNS_AUTH_ERROR
public static final java.lang.String ERR_APNS_AUTH_ERROR
- See Also:
- Constant Field Values
-
ERR_INTERNAL
public static final java.lang.String ERR_INTERNAL
- See Also:
- Constant Field Values
-
ERR_INVALID_ARGUMENT
public static final java.lang.String ERR_INVALID_ARGUMENT
- See Also:
- Constant Field Values
-
ERR_QUOTA_EXCEEDED
public static final java.lang.String ERR_QUOTA_EXCEEDED
- See Also:
- Constant Field Values
-
ERR_SENDER_ID_MISMATCH
public static final java.lang.String ERR_SENDER_ID_MISMATCH
- See Also:
- Constant Field Values
-
ERR_UNAVAILABLE
public static final java.lang.String ERR_UNAVAILABLE
- See Also:
- Constant Field Values
-
ERR_UNREGISTERED
public static final java.lang.String ERR_UNREGISTERED
- See Also:
- Constant Field Values
-
-
Method Detail
-
getApp
public static com.google.firebase.FirebaseApp getApp()
Firebase application based on FIREBASE_CONFIG- Returns:
- Firebase Application
-
clear
public static void clear()
Reset the FirebaseApp
-
service
public static void service(Grant g, org.json.JSONObject data) throws java.lang.Exception
Service wrapper- Parameters:
g
- User Grantdata
- JSON data (with to: send a message, with token: refresh the token)- Throws:
java.lang.Exception
-
refreshToken
public static void refreshToken(Grant g, java.lang.String token, java.lang.String oldToken)
Refresh the user's firebase token- Parameters:
g
- User rightstoken
- New tokenoldToken
- Optional old token to replace
-
removeToken
public static void removeToken(java.lang.String login, java.lang.String token)
Remove a user's firebase token- Parameters:
login
- User logintoken
- Token
-
init
public static boolean init(Grant g, java.lang.String key)
Init Firebase service- Parameters:
g
- Grantkey
- JSON private key- Returns:
- true if succeed
-
init
public static boolean init()
Init Firebase service based on FIREBASE_PRIVATE_KEY- Returns:
- true if succeed
-
getDeviceTokens
public static java.util.List<java.lang.String> getDeviceTokens(java.lang.String login)
List all registered device of a user- Parameters:
login
- User login- Returns:
- FIREBASE_TOKENS as json or null if no token found
-
getAllDeviceTokens
public static java.util.Map<java.lang.String,java.util.List<java.lang.String>> getAllDeviceTokens(java.lang.String oneLogin)
Search all users with device tokens- Parameters:
oneLogin
- Optional login to limit search to one login- Returns:
- Map of login = list of device tokens
-
sendMessage
public static void sendMessage(Grant g, org.json.JSONObject data) throws java.lang.Exception
Send a message- Parameters:
g
- User rightsdata
- Message data: title, message, to: 'all' or { users:[logins], groups:[names]}, optional object, rowId- Throws:
java.lang.Exception
-
sendMessage
public static void sendMessage(Grant g, java.lang.String title, java.lang.String body, java.lang.String icon, boolean allUsers, java.util.List<java.lang.String> logins, java.util.List<java.lang.String> groups, java.lang.String object, java.lang.String rowId) throws java.lang.Exception
Send a message- Parameters:
g
- User rightstitle
- optional message titlebody
- required messageicon
- (deprecated)allUsers
- send to all users?logins
- or specified logins?groups
- or specified groups?object
- optional business objectrowId
- optional object rowId- Throws:
java.lang.Exception
-
sendMessage
public static void sendMessage(Grant g, java.lang.String title, java.lang.String body, boolean allUsers, java.util.List<java.lang.String> logins, java.util.List<java.lang.String> groups, java.lang.String object, java.lang.String rowId) throws java.lang.Exception
Send a message- Parameters:
g
- User rightstitle
- optional message titlebody
- required messageallUsers
- send to all users?logins
- or specified logins?groups
- or specified groups?object
- optional business objectrowId
- optional object rowId- Throws:
java.lang.Exception
-
sendToAllUsers
public static java.lang.String sendToAllUsers(java.lang.String title, java.lang.String body, java.util.Map<java.lang.String,java.lang.String> map) throws java.lang.Exception
Send a notification to 'allUsers' topic- Parameters:
title
- notification titlebody
- notification bodymap
- hidden pairs of key/value- Returns:
- message Id or null on error
- Throws:
java.lang.Exception
-
getNotifBuilder
public static com.google.firebase.messaging.Message.Builder getNotifBuilder(java.lang.String title, java.lang.String body, boolean high, long ttl, java.lang.String sound, java.lang.String color, java.lang.String icon, java.util.Map<java.lang.String,java.lang.String> map)
Get notification builder- Parameters:
title
- Message titlebody
- Message bodyhigh
- High priority? android onlyttl
- Time to leave in ms (default 1 day if 0) android onlysound
- Sound name ('default' if null) android onlycolor
- Optional #RRGGB (default #FFFFFF) android onlyicon
- Optional icon name (use 'notification_icon' when forced by cordova plugin) android onlymap
- Optional pairs of key/value- Returns:
- Notification builder
-
sendToUser
public static java.lang.String sendToUser(java.lang.String login, java.lang.String token, java.lang.String title, java.lang.String body, java.util.Map<java.lang.String,java.lang.String> map) throws java.lang.Exception
Send a notification to single user (token will be removed if unknown in Firebase)- Parameters:
login
- User logintoken
- User device tokentitle
- notification titlebody
- notification bodymap
- hidden pairs of key/value- Returns:
- message Id or null on error
- Throws:
java.lang.Exception
-
sendToTopic
public static java.lang.String sendToTopic(java.lang.String topic, java.lang.String title, java.lang.String body, java.util.Map<java.lang.String,java.lang.String> map) throws java.lang.Exception
Send a notification to single user- Parameters:
topic
- topic nametitle
- notification titlebody
- notification bodymap
- hidden pairs of key/value- Returns:
- message Id
- Throws:
java.lang.Exception
-
syncTopics
public static void syncTopics(java.lang.String oneLogin)
Synchronize topics- Parameters:
oneLogin
- Optional login to synchronize one login or all users
-
subscribeToTopic
public static void subscribeToTopic(java.util.List<java.lang.String> tokens, java.lang.String topic) throws com.google.firebase.messaging.FirebaseMessagingException
Subscribe a list of device tokens to topic on Firebase. Send by packet of 1000 to respect API limitation.- Parameters:
tokens
- List of device tokenstopic
- Name of topic- Throws:
com.google.firebase.messaging.FirebaseMessagingException
-
unsubscribeFromTopic
public static void unsubscribeFromTopic(java.util.List<java.lang.String> tokens, java.lang.String topic) throws com.google.firebase.messaging.FirebaseMessagingException
Unsubscribe a list of device tokens from topic on Firebase. Send by packet of 1000 to respect API limitation.- Parameters:
tokens
- List of device tokenstopic
- Name of topic- Throws:
com.google.firebase.messaging.FirebaseMessagingException
-
-