Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在Ruby on Rails服务器中使用Firebase Admin SDK发送React本机推送通知?_Ruby On Rails_Ruby_Firebase_React Native_Firebase Admin - Fatal编程技术网

Ruby on rails 如何在Ruby on Rails服务器中使用Firebase Admin SDK发送React本机推送通知?

Ruby on rails 如何在Ruby on Rails服务器中使用Firebase Admin SDK发送React本机推送通知?,ruby-on-rails,ruby,firebase,react-native,firebase-admin,Ruby On Rails,Ruby,Firebase,React Native,Firebase Admin,我正在尝试在我的React Native项目中实现推送通知,并已设置推送通知以在我的iOS应用程序中工作。我想从Ruby on Rails服务器发送通知,即当用户收到好友请求时,但Firebase Admin SDK仅提供与Node.js、Java、Python、C#和Go的兼容性我用Ruby on Rails编写了服务器代码,并想从Rails调用Firebase Admin SDK。 我正试图通过Firebase教程了解React Native Push Notifications:使用通知令

我正在尝试在我的React Native项目中实现推送通知,并已设置推送通知以在我的iOS应用程序中工作。我想从Ruby on Rails服务器发送通知,即当用户收到好友请求时,但Firebase Admin SDK仅提供与Node.js、Java、Python、C#和Go的兼容性我用Ruby on Rails编写了服务器代码,并想从Rails调用Firebase Admin SDK。

我正试图通过Firebase教程了解React Native Push Notifications:使用通知令牌向特定设备发送通知,但所有内容都是在Node.js中编写的,我不知道如何在Ruby中实现代码

我还查看了Firebase Admin SDK的REST API的不同Ruby helper库,但这些库的文档太晦涩,我无法理解

理想情况下,我想要实现的功能类似于:

const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp(functions.config().firebase);
exports.sendPushNotification = functions.database
  .ref("users/{userID}")
  .onCreate(event => {
    const data = event._data;
    payload = {
      notification: {
        title: "Welcome",
        body: "thank for installed our app",
      },
    };
    admin
      .messaging()
      .sendToDevice(data.notification_token, payload)
      .then(function(response) {
        console.log("Notification sent successfully:", response);
      })
      .catch(function(error) {
        console.log("Notification sent failed:", error);
      });
  });

但很遗憾,这段代码位于Node.js中,无法在我的RubyonRails服务器上运行。

中有一些FCM的REST示例。您需要一个授权库来授权您的请求。然后找出如何从Ruby进行REST调用。下面是我过去使用过的一些示例代码:

require 'googleauth'
require 'net/http'
require 'json'
require 'uri'

authorizer = Google::Auth.get_application_default(scopes)

req = Net::HTTP::Get.new(uri)
# Add authorization header to the request
some_headers = {}
authorizer.apply!(some_headers)
some_headers.each do |key, value|
    req[key] = value
end

res = http.request(req)
parsed_results = JSON.parse(res.body)

只是一个建议,你只想发送推送通知。尝试将onesignal集成到rails中非常容易。谢谢Hiranya!这很有帮助,我将研究一下用于Ruby的GoogleAuth库。