前一段时间,我在Advanced Android上进行了速成班课程,该课程的讲师讲授了Firebase。虽然我不记得详细信息,但他说我们可以从Firebase控制台控制应用程序的行为(例如,通过调用Cloud函数?)。例如,然后我可以在我的应用中获取一个触发器,并作为响应,我可以根据以下方式决定是否向用户提供某些功能(例如从按钮中删除onClickListener):他们已经支付了项目价格或订阅费。
可以使用Firebase吗?
答案 0 :(得分:0)
经过一些研究和实验,我能够在我的应用程序中实现此功能。
首先,您需要将Firebase Messaging添加到您的项目中。然后,创建FirebaseMessagingService的子类。在类内部,实现onMessageReceived
,您可以在其中访问从服务器收到的消息:
public class MyFirebaseMessagingService extends FirebaseMessagingService {
private static final String TAG = MyFirebaseMessagingService.class.getSimpleName();
@Override
public void onNewToken(String s) {
super.onNewToken(s);
Log.d(TAG, "onNewToken: " + s);
}
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
Log.d(TAG, "onMessageReceived: " + remoteMessage.getData());
Log.d(TAG, "onMessageReceived: activation: "+ remoteMessage.getData().get(Constants.ACTIVATION_KEY));
boolean activation = Boolean.valueOf(remoteMessage.getData().get(Constants.ACTIVATION_KEY));
//Save in preferences
SharedPreferences prefs = getApplication().getSharedPreferences(Constants.PREFERENCE_FILE, MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean(Constants.ACTIVATION_KEY, activation);
editor.apply();
}
}
确保将此服务添加到清单文件中:
<service android:name="me.mehdi.utils.MyFirebaseMessagingService">
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT"/>
</intent-filter>
</service>
在Firebase控制台中,从左侧选择Cloud Messaging,然后点击“新消息”。撰写新邮件时,除了邮件文字和邮件标签外,您还会注意到“高级选项”部分。在高级选项下,您可以输入键值对并发送到从下拉菜单中选择的设备,最后点击发送消息。在onMessageReceived
方法中,您可以读取键值对并更新应用的共享首选项以激活或停用某些功能。