我一直在尝试阅读关于如何从一个设备发送消息到另一个设备的官方文档和指南。 我已经在实时数据库中保存了这两个设备的注册令牌,因此我有另一个设备的注册令牌。 我已经尝试了以下方式发送消息 RemoteMessage message = new RemoteMessage.Builder(getRegistrationToken()) .setMessageId(incrementIdAndGet()) .addData("message", "Hello") .build(); FirebaseMessaging.getInstance().send(message); 但是这不起作用。 其他设备不会收到任何消息。 我甚至不确定,如果我可以使用上行消息发送进行设备到设备的通信。 PS:我只想知道是否可以使用FCM进行设备到设备的消息传递? 如果是,那么我使用的代码有一些问题? 如果是,那么正确的方法是什么。 更新: 我的问题是询问设备到设备的消息传递,而不使用除firebase以外的任何单独的服务器可以消息传递是否可能,如果是的话比如何,因为没有关于它的文档。 我不明白这里要解释什么? 无论如何,我得到了答案,并将问题重新打开后,将其作为答案更新。
有什么办法从一个node.js服务器发送FCM通知? 我没有发现任何关于它在文档内。
Google刚刚发布了Cloud Firestore,它们是用于应用程序的新文档数据库。 我一直在阅读文档,但是Firestore和Firebase DB之间没有太多的区别。 重点是Firestore使用文档和集合,这些文档和集合与Firebase(这是一个带有JSON基础的传统NoSQL数据库)相比,可以方便地使用查询。 我想知道更多关于它们的区别或用法,或Firestore是否刚刚取代Firebase DB?
有人知道从firebase控制台发送click_action的一种方法吗? 我只想发送click_actionbutton来使用通知,即使应用程序已closures或在后台。
这是一个已知的问题 ,firebase没有简单的方法来计数项目。 我打算创build一个应用程序,严重依赖计数和其他聚合。 我担心创build这个应用程序的计数器与这里build议的规则将是非常复杂和难以维护。 所以我想到了这个模式: 我将保留一个服务器,将监听在数据库中input的所有项目,该服务器将更新所有计数器和聚合。 服务器将拥有只有他可以更新计数器的特殊pipe理员的UID。 这样,用户就不必下载整个节点来计数,而且我也不必处理由客户维护计数器所引起的问题。 这种模式是否有意义? 我错过了什么吗?
我提取列表中的用户列表(android)我用firebaselistadapter备份我的列表视图,我想显示除我的用户数据。 像一个SQL查询select从usertable哪里id!= userid; 我想获取所有其他用户的数据,
我一直在尝试使用java代码(非android)来获取我的firebase数据库的数据。 我用同样的方法,我在android应用程序中检索。 但它没有获取数据。 Firebase firebase = new Firebase("https://——.firebaseIO.com"); firebase.addValueEventListener(new ValueEventListener(){ @Override public void onDataChange(DataSnapshot ds) { long i = ds.child("Users").getChildrenCount(); userlist = new String[(int)i]; int j = 0; for( DataSnapshot each_ds : ds.getChildren() ){ userlist[j] = each_ds.child("username").getValue().toString(); System.out.println(userlist[j]); j++; } } @Override public void onCancelled(FirebaseError fe) { throw new UnsupportedOperationException("Not supported yet."); //To change body […]
我正尝试通过新的Firebase推送通知服务向用户发送一些数据。 我添加了“消息文本” – “dbupdate”的一些“键值”自定义数据项,以检测是否是要显示我的用户的更新消息或正常的推送通知。 在我的接收器,我检查我有自定义数据,并运行更新,如果是的话。 如果不是这种情况,我会用短信显示一个正常的通知。 它只有在我的应用程序打开时才有效 如果应用程序closures,通知显示无论如何,我如果检查甚至没有运行, 一些代码: public class PushMessageService extends FirebaseMessagingService { @Override public void onMessageReceived(RemoteMessage remoteMessage) { super.onMessageReceived(remoteMessage); Map<String,String> data = remoteMessage.getData(); String link = data.get("link"); String name = data.get("name"); if (link!=null) { Log.d("link",link); Log.d("name",name); UpdateHelper.Go(this, link, name); } else { NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this) .setSmallIcon(R.drawable.ic_shop_white_24dp) .setAutoCancel(true) .setContentTitle(remoteMessage.getNotification().getTitle()) .setContentText(remoteMessage.getNotification().getBody()); NotificationManager […]
Firebase的createUser()方法需要一个电子邮件和密码字段,但是如果我还想允许用户使用与Snapchat,Instagram,StackOverflow等类似的用户名呢? 有没有办法修改现有的方法来接受该字段,或者我需要手动推送和pipe理这些信息,如果是这样的话? 这是我第一次尝试存储所需的用户信息: Firebase ref = new Firebase(firebaseURL); ref.createUser(email, password, new Firebase.ValueResultHandler<Map<String, Object>>() { @Override public void onSuccess(Map<String, Object> result) { System.out.println("Successfully created user account with uid: " + result.get("uid")); //Sign user in Firebase ref = new Firebase(firebaseURL); ref.authWithPassword(email, password, new Firebase.AuthResultHandler() { @Override public void onAuthenticated(AuthData authData) { System.out.println("User ID: " + authData.getUid() + […]
目前,Google版本的ServerValue.TIMESTAMP返回{".sv":"timestamp"} ,一旦您将数据保存到Firebase服务器,该版本将作为Firebase的指令使用服务器时间戳填充该字段。 但是,当您在客户端创build数据时,您还没有实际的时间戳(即用作创builddate)。 在初始保存和随后的检索之后,您只能访问时间戳,我想 – 这有时为时已晚,不够优雅。 Google之前: 更新:忽略这一部分,因为它是不正确的 – 我误解了这些例子。 ServerValue.TIMESTAMP总是返回{".sv":"timestamp"} 。 据我所知,在谷歌Firebase之前,似乎有一个服务器生成的时间戳,允许您获取实际的时间戳: import com.firebase.client.ServerValue; ServerValue.TIMESTAMP // eg. 1466094046 ( 参考文献1 , 参考文献2 ) 问题: 这样的保存/检索是获得我的模型实例上的服务器生成的创builddate的唯一方法吗? 如果是的话,你能提出一个实施这种模式的方法吗? 我是否正确理解ServerValue.TIMESTAMP随着Google收购Firebase而改变? 更新:不,@FrankvanPuffelen回复说,收购过程中没有任何变化。 注意: 我不考虑在客户端使用new Date() ,因为我一直在阅读它是不安全的,但如果你认为不同,请分享你的想法。