当前位置: 首页 > 知识库问答 >
问题:

将Firebase与第三方API集成

卢志强
2023-03-14

我想将我的firebase项目与一些第三方API集成,比如twitter API。

第三方API

以下代码将收听包含特定文本“小火箭人”的新推文:

var Twitter = require('twitter');

// setup new twitter client
var client = new Twitter({
  consumer_key: '',
  consumer_secret: '',
  access_token_key: '',
  access_token_secret: ''
});

// open new twitter stream
let stream = this.client.stream('statuses/filter', { track: 'little rocket man' });

stream.on('data', (event: any) => {
  let tweetText = event && event.text; // this should be written to the firebase db
});

Firebase云函数

以下Firebase云函数侦听特定路由上传入的HTTP GET请求,并将数据保存回Firebase数据库:

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin'; // Firebase Admin SDK

admin.initializeApp(functions.config().firebase);

// this example uses a HTTP trigger, but how can I trigger it whenever new tweets containint 'little rocket man' are detected??
exports.addMessage = functions.https.onRequest((req, res) => {
  const original = req.query.text;

  admin.database().ref('/messages').push({original: original}).then(snapshot => {
    res.redirect(303, snapshot.ref);
  });
});

问题

如何将从twitter客户端收到的推文写回firebase db?如果可能,我想在firebase云函数上运行所有代码。

免责声明:我是Firebase的新手,尽管我在网上搜索了几个小时,但还是没能找到解决问题的方法。我想提前道歉,如果我监督的话。

共有1个答案

宋智明
2023-03-14

在云函数中不能使用这样的流式API。函数可能只响应某些不同的事件,例如HTTP请求或数据库中的某些更改。函数不能无限期运行。

如果您想将匹配某个查询的tweet收集到数据库中,可以使用IFTTT定期将其发送到可用的函数。我最近完成了一个小项目,就是这样做的。

 类似资料:
  • 使用 Spring 使用 TCP 服务器 在 Spring 配置如下,来启动和关闭 H2 TCP 服务器 <bean id = "org.h2.tools.Server" class="org.h2.tools.Server" factory-method="createTcpServer" init-method="star

  • 我有一个关于使用第三方API进行身份验证的问题。 我想使用Firebase来构建应用程序。我想使用来自像strava这样的第三方的数据。 用Firebase隔离Strava-api的最佳方法是什么? 如何在Firebase中实现Strava身份验证?

  • 我正试图通过REST应用编程接口将第三方工具与Jira服务器集成。目前,我们的客户端使用了一个定制的Jira,它具有特定于业务的问题类型。基本上,我所需要的就是能够通过REST应用编程接口为该工具创建一个给定类型的问题,获取响应(成功/错误)和元数据(所需和可选字段列表)。 我们在WebUI上有一个创建问题页面,用户可以在其中提交请求。但问题是,所有验证逻辑都在一些Javascript代码、行为和

  • API第三方库 ThinkCMF支持API应用自己安装第三方库,下面以 demoAPI应用为例讲一下如何在API应用中引入第三方库 创建 composer.json 在demo API应用根目录api/demo中创建composer.json文件 { "name": "thinkcmf/apis-demo", "description": "ThinkCMF demo api",

  • 我得到的错误与“数字.int64", "努比·布尔_“,等等。 需要WHERE/HAVING角色的SQL表达式,为True 我得到的错误与“数字.int64", "努比·布尔_“,等等。 这个 numpy 包有自己的数字数据类型,这些数据类型是从Python的数字类型扩展而来的,但包含的一些行为在某些情况下使它们无法与SQLAlchemy的某些行为协调,在某些情况下,这些行为与正在使用的底层DBA

  • beego 支持第三方应用的集成,用户可以自定义 http.Handler,用户可以通过如下方式进行注册路由: beego.RouterHandler("/chat/:info(.*)", sockjshandler) sockjshandler 实现了接口 http.Handler。 目前在 beego 的 example 中有支持 sockjs 的 chat 例子,示例代码如下: packa