How to get all of device tokens from Firebase?

本小妞迷上赌 提交于 2019-12-01 16:15:54

问题


How to get device tokens (FCM registration tokens) from Firebase?

I'm making mobile app using firebase and its server using node.js.

I want to send push notification message from server, but I don't know how to get devices token.

  1. How to get device tokens from external server? I'm using Firebase admin SDK now.

  2. Is the device token only generated when the app is connected fcm server?

  3. Should I save token to another database when user first run the app and register FCM server?


回答1:


1. How to get device tokens from external server? I'm using Firebase admin SDK now.

There is currently no API to retrieve all the Registration tokens for your app from the Server side. It's the developer's (you) responsibility to send and store the Registration token to your App Server, which is generated from the Client App side.

2. Is the device token only generated when the app is connected FCM server?

The documentation pretty much covered this (see also my answer here):

On initial startup of your app, the FCM SDK generates a registration token for the client app instance.

It doesn't technically get connected to the FCM Servers. It connects to the FirebaseInstanceID service (via the SDK), which in turn generates the Registration Token.

3. Should I save token to another database when user first run the app and register FCM server?

As I mentioned in #1, you should save it where you can easily access it to send a message.




回答2:


The device token is generated when the app first connects, this token must then be stored in your database, and replaced if a new token is assigned

public class MyAndroidFirebaseInstanceIdService extends FirebaseInstanceIdService {

    private static final String TAG = "MyAndroidFCMIIDService";

    @Override
    public void onTokenRefresh() {
        //Get hold of the registration token
        String refreshedToken = FirebaseInstanceId.getInstance().getToken();
        //Log the token
        Log.d(TAG, "Refreshed token: " + refreshedToken);
    }
    private void sendRegistrationToServer(String token) {
        //Implement this method if you want to store the token on your server
    }
}

See the following Tutorial




回答3:


You can make a get request to

https://<<your_project_name>>.firebaseio.com/.json?auth=<<your_database_secret_key>>

The database secret key you get in Firebase console under the tab settings/serviceaccounts/databasesecrets

This returns a JSON file containing all Storage data of your project.



来源:https://stackoverflow.com/questions/43060846/how-to-get-all-of-device-tokens-from-firebase

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!