【问题标题】:How to Send Notifications to Server App when a New Entry is Added to the Database向数据库添加新条目时如何向服务器应用程序发送通知
【发布时间】:2018-03-20 06:34:32
【问题描述】:

我正在使用两个应用程序。一个是客户端应用程序,另一个是服务器应用程序。一旦客户下订单。在数据库中创建一个新条目 我想在客户下订单后立即向服务器应用程序发送通知。

database = FirebaseDatabase.getInstance();
    myRef = database.getReference("requests");
    myRef.addChildEventListener(new ChildEventListener() {
        @Override
    public void onChildAdded(DataSnapshot dataSnapshot, String s) {
            Toast.makeText(MainActivity.this,"new entry",Toast.LENGTH_SHORT).show();
            Log.d(TAG,"I know whats cooking " );
        }

此代码将在后台活动中用于检测数据库中的更改。 最佳实践是什么? 如果我们使用实时 firebase 会触发 onCreate() 方法,该方法会在向数据库添加新条目时触发。我无法理解应该将我在this link 中找到的触发代码放在哪里 我发现了一个类似的问题,但找不到答案。 How to show notification from background service?

【问题讨论】:

  • 您可以在您的服务器上创建一个 REST API 并在用户每次输入新条目时调用它。
  • 非常感谢!我是 Android 的初学者。那你能解释一下吗?
  • 查看 Cloud Functions for Firebase 以编写触发以响应数据库更改的后端代码。 firebase.google.com/docs/functions
  • 在您的 onChildAdded 中使用 volley 调用 web api 或改装任何您想要的并将数据发送到服务器应用程序
  • 谢谢@PritishJoshi! childadded 方法在服务器应用程序中。我应该在客户端应用程序中创建它吗?

标签: android firebase notifications firebase-cloud-messaging


【解决方案1】:

您可以使用Cloud Functions 来做到这一点。您应该做的是将onCreate 函数注册到您的数据库引用。仅当为您的数据库引用创建新子项时才会触发此函数。然后使用FCM push notification API 发送您的通知。

【讨论】:

  • 我上面提到了一段代码,根据这段代码,每次有新的数据库条目时都必须显示一个toast,但toast没有出现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-10
相关资源
最近更新 更多