小编Pan*_*007的帖子

getContactsFromFirebase()方法返回一个空列表

public List<String> getContactsFromFirebase(){
    FirebaseDatabase.getInstance().getReference().child("Users")
            .addListenerForSingleValueEvent(new ValueEventListener() {
                @Override
                public void onDataChange(DataSnapshot dataSnapshot) {
                    for (DataSnapshot snapshot : dataSnapshot.getChildren()) {
                        Users user = snapshot.getValue(Users.class);
                        assert user != null;
                        String contact_found = user.getPhone_number();
                        mContactsFromFirebase.add(contact_found);
                        Log.i("Test", mContactsFromFirebase.toString());
                    }

                }
                @Override
                public void onCancelled(DatabaseError databaseError) {
                }
            });

    return mContactsFromFirebase;

}
Run Code Online (Sandbox Code Playgroud)

我似乎无法找到错误.在上面的代码中,当我调用日志时,我从中获取值mContactsFromFirebase,但该getContactsFromFirebase()方法返回一个空列表.请问你能帮帮我吗?

android firebase firebase-realtime-database

3
推荐指数
1
解决办法
891
查看次数

有没有办法在FCM中删除推送通知?

在我的应用程序中,我正在提供用户之间的视频和语音通话。我也在使用Firebase Realtime数据库和FCM。

这是我的通知传递的数据:

data: { 
    channel_id: channel_id,
    user_id: user_id
}
Run Code Online (Sandbox Code Playgroud)

在我的FirebaseMessagingService类中,我检索数据并打开Video / Call活动,如下所示:

if(remoteMessage.getData().size > 0) {
        Intent intent = new Intent(this, VideoCallActivity.class);
        intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
        intent.putExtra("channel_id", remoteMessage.getData().get("channel_id"));
        intent.putExtra("user_id", remoteMessage.getData().get("user_id"));
        getApplicationContext().startActivity(intent);

    }
Run Code Online (Sandbox Code Playgroud)

即使应用程序在后台,一切都可以正常运行。但是,我面临着这个问题:

如果用户在被呼叫时没有互联网连接,则当他连接到互联网时,即使呼叫已被呼叫者中止并且通知已从Firebase实时数据库中删除,他的电话也会自动启动VideoCallActivity。

因此,请问有没有办法取消已发送的通知,或者知道这些通知的传递状态,或者采取其他方式取消?这样,我就可以为用户添加未接来电列表。

谢谢!

java firebase firebase-cloud-messaging

1
推荐指数
1
解决办法
625
查看次数