Firebase会向用户发送通知

时间:2017-05-08 18:37:54

标签: android firebase firebase-realtime-database firebase-cloud-messaging firebase-notifications

我正在尝试向Firebase上的数据库中的某些用户发送通知,我知道Firebase有一个与通知相关的部分,但我刚刚看到了如何直接从Firebase网站推送通知的示例,我有我的应用程序中的一个事件,当创建该事件时,我想将通知发送给所有用户,所以基本上这是事件:

public void createEventGame(View view){

        Match match = new Match(userId,gameEventNameTxt.getText().toString(),dateMatch);
        String key = myGameRef.push().getKey();
        myGameRef.child(key).setValue(match);


        /*if(radioMatchSelected){

        }*/

        if(radioEventSelected){
            final HashMap<String,Boolean> matches = new HashMap<String,Boolean>();
            matches.put(key,true);


            Spinner spinner = (Spinner)findViewById(R.id.spinner);
            final String text = spinner.getSelectedItem().toString();
            Log.d("sizebb",text);

            myRef.child(userId).child("FriendLists").child(text).addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    long size = dataSnapshot.getChildrenCount();

                    Log.d("sizebb",String.valueOf(size));
                    for(DataSnapshot s: dataSnapshot.getChildren()){
                        friends.put(s.getKey(),false);
                    }
                    if(size < 10){
                        Snackbar snackbar = Snackbar
                                .make(findViewById(android.R.id.content), "You need to have atleast 10 friends in your group, go to your friendlist and add some friends!", Snackbar.LENGTH_LONG);
                        snackbar.show();
                    }

                    Event event = new Event(gameEventNameTxt.getText().toString(),hourWeek,userId,matches,friends,dayOfWeek);
                    myEventRef.child(event.getName()).setValue(event);

                    /*else{
                        friends.put(dataSnapshot.getKey(),true);
                    }*/
                }

                @Override
                public void onCancelled(DatabaseError databaseError) {

                }

            });

现在我该如何处理通知,是否有任何好的教程可以讨论它?我找不到它,或者我是否需要直接在firebase上处理数据库通知?

2 个答案:

答案 0 :(得分:0)

不清楚这个问题,会尽力而为。

因此,您可以通过控制台向所有用户发送firebase通知。您还可以根据用户订阅的主题以及单个设备对用户进行分组(您需要一个令牌才能发送单个设备)。 Firebase cloud messaging。此外,您可以从程序逻辑发送通知。

查看您可以发送的各种类型的通知here

另一个快速启动firebase的地方是他们的github回购。几乎你可以找到一切快速启动项目。 Firebase Github repo

答案 1 :(得分:0)

让您想要发送通知的所有朋友订阅共同主题。

事件发生时,请调用Firebase REST API并将通知发送到此主题,您的所有用户都应获取这些通知。通知标记或数据标记或两者都取决于您的用例。我更喜欢Data标签,以确保所发生的一切都留在我编写的代码中,而不是系统代码。

您选择的主题名称和订阅的人员由您决定。这应该让你开始。