我正在构建一个聊天应用程序,并使用FCM服务。
String token1; FirebaseMessaging.getInstance().getToken()
.addOnCompleteListener(new OnCompleteListener<String>() {
@Override
public void onComplete(@NonNull Task<String> task) {
if (!task.isSuccessful()) {
Log.w("TTTTTTTTTTTT", "Fetching FCM registration token failed", task.getException());
return;
}
// Get new FCM registration token
token1 = task.getResult(); //this is the token
// Log
Log.d("TTTTTTTTTTTT", token1);
}
});
signUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final String em = email.getText().toString();
String pass = password.getText().toString();
final String na = name.getText().toString();
final String ci = city.getText().toString();
if (em.equals("") || pass.equals("") || na.equals("") || ci.equals("")) {
name.setError("Enter your name");
password.setError("Enter your password");
city.setError("Enter your city");
email.setError("Enter your email");
Toast.makeText(ActivitySignup.this, "Please fill all the Fields", Toast.LENGTH_SHORT).show();
} else {
progressBar.setVisibility(View.VISIBLE);
FirebaseAuth.getInstance().createUserWithEmailAndPassword(em, pass).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
progressBar.setVisibility(View.GONE);
FirebaseDatabase.getInstance().getReference().child("USERS").
child(task.getResult().getUser().getUid()).
setValue(new UserModel(em, na, ci,token1 )); //Creating a new user and storing name ,email, city and token in database
startActivity(new Intent(ActivitySignup.this, YearChooseActivity.class).putExtra("activity_name", "ActivitySignUp")
.putExtra("timesVisited", timesVisited));
Toast.makeText(ActivitySignup.this, "Successfully Register User \n" + em, Toast.LENGTH_SHORT).show();
} else {
progressBar.setVisibility(View.GONE);
Toast.makeText(ActivitySignup.this, Objects.requireNonNull(Objects.requireNonNull(task.getException()).getMessage()).toString(), Toast.LENGTH_LONG).show();
}
}
});
}
}
});
firebaseDatabase.getInstance().getReference().child(“users”).child(task.getResult().getUser().getUser()).setValue(new UserModel(email,name,city,token1));//创建新用户并存储名称、电子邮件,
问题是令牌没有存储在Firebase中。当我传递一个随机字符串作为令牌参数时,让我们说我传递“Kobe will be remember”作为参数
firebaseDatabase.getInstance().getReference().child(“users”).child(task.getResult().getUser().getUser()).setValue(新的UserModel(电子邮件、姓名、城市、“Kobe will be remember”));//创建新用户并存储名称、电子邮件,
然后它会很好地存储在数据库中。
当我与一个测试用户注册时,假设name=a,email=a@gmail.com,city=a,那么在实时数据库中不保存令牌。这就是实时数据库的外观。
"aBnS2fuXo2gmvcxzqy3z3mgFpiv2" : {
"city" : "a",
"email" : "a@gmail.com",
"name" : "a"
}
但是,当我将令牌值硬编码为随机字符串时,让我们使用firebasedatabase.getinstance().getreference().child(“users”).child(task.getresult().getuser().getuid()).setvalue(new UserModel(email,name,city,“Arnold”));
然后数据库看起来像
"aBnS2fuXo2gmvcxzqy3z3mgFpiv2" : {
"city" : "a",
"email" : "a@gmail.com",
"name" : "a"
"userToken" : "Arnold",
}
对于通知,我需要对方的令牌,因此我如何将所有用户的令牌连同他们的其他凭据一起存储在firebase中?
你肯定不会把它们存放在同一个位置,这不是很好的安全措施。此外,用户可能会退出或更换他们的手机,您不想将通知发送到旧设备。
将FCM令牌保存在用户信息或子集合下。然后,如果您想使用该令牌向他们发送消息,只需使用他们的UID获取令牌并向他们发送消息。您可以使用云函数安全地做到这一点。
我试图从C#中的服务器发送推送通知,我使用了正确的注册令牌和API密钥,但仍然得到以下响应。 我按照这个网址来实现这个解决方案通过C#使用FCM(Firebase云消息传递)发送推送到Android 目前,我正在尝试向单个设备发送通知,但也希望同时向多个设备发送通知,我使用了url中给出的,但它不起作用。如果我必须同时向多个设备发送通知,我该怎么办? 这是我的密码
我也在尝试使用node。js和firebase管理员向iOS设备发送推送通知。然而,我遇到了这个错误: 错误发送消息:{错误:请求包含一个无效的参数。在Firebase MessagingError。错误(本机)在Firebase MessagingError。Firebase Error[作为构造函数](/user_code/node_modules/fire base-admin/lib/ut
在我们的项目中,我们使用Firebase云消息传递来进行推送通知,我们遇到了消息重复的问题。我们过程如下所示: xamarin.firebase.ios.CloudMessaging 3.1.2 xamarin.firebase.ios.instanceID 3.2.1 xamarin.firebase.ios.core 5.1.3 订阅用户主题推荐 发送主题订阅者请求的通知 null 但是,当用
我必须在SpringJava中为多层架构制作一个RESTAPI,其中需要为Firebase云消息传递(FCM)构建DAO、控制器和服务管理器,以向android应用程序发送推送通知消息,但我无法在Java中配置服务器以向设备发送通知。我怎么能?
我正在使用Firebase消息向iPhone应用程序的用户发送通知。为了不在客户端公开应用程序的消息服务器密钥,我正在使用Firebase的云功能向特定主题发送通知。在此之前,我在应用程序的客户端执行此操作,并能够通过制作以下格式的JSON来设置消息的优先级: 现在在我的云函数中,我试图制作一个相同通用格式的有效载荷,但是一直遇到错误: 以下是我的有效负载格式化和发送: 有谁知道我该如何设定优先级
我有客户端-服务器应用程序,我开发了Xamarin移动客户端,我使用FCM进行推送通知,当我登录时,我将令牌发送到服务器,在那里我将其绑定到数据库中的帐户,但当我注销移动应用程序时我该怎么办,服务器可能没有意识到这一点,并将继续发送通知,我必须更新客户端中的令牌,但这没有实现,也不正确,我能做什么? 这里描述了一个类似的问题。Firebase云消息刷新令牌