【发布时间】:2019-11-14 00:04:01
【问题描述】:
所以, 我想使用云功能从我的应用向 Firebase 发送请求,然后处理进程 url 并从位置 api 发回 JSON 文件
我已经完成/拥有的=> 在控制台中设置项目并获取 firebase CLI 后创建了一个云功能,如下所示
在关注你的 cmets 之后 这是我的完整功能代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();
const rp = require('request-promise');
exports.fetch = functions.https.onCall((req, res) => {
const url = req.url + '&key=MY_API_KEY';
var options = {
uri: url, // Automatically parses the JSON string in the response
json: true
};
rp(options)
.then(result => {
console.log('Get response:' + response.statusCode);
return res.type('application/json').send(result);
}).catch(err => {
// API call failed...
return res.send({'Error': err});
});
})
在java类中传递这样的值
private Task<String> addMessage(String url) {
// Create the arguments to the callable function.
Map<String, Object> data = new HashMap<>();
data.put("url", url);///PASSING VALUES HERE
return mFunctions
.getHttpsCallable("fetch")
.call(data)
.continueWith(task ->
(String) Objects.requireNonNull(task.getResult()).getData());
}
现在我在使用 firebase CLI 部署新功能代码时遇到的问题是 16:8 error Each then() should return a value or throw promise/always-return 错误
谁能指导我..,
网址将是这样的:
https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=17.4369681,78.4473887&radius=5000&type=airport&sensor=true&key=MY_KEY
这是来自控制台的日志详细信息
2019-07-05T10:06:35.025308453Z D fetch: Function execution started
2019-07-05T10:06:35.265840608Z D fetch: Function execution took 241 ms, finished with status code: 200
2019-07-05T10:06:45.162Z I fetch: Get response:undefined
2019-07-05T10:06:46.062Z E fetch: Unhandled rejection
2019-07-05T10:06:46.062Z E fetch: TypeError: res.send is not a function
at rp.then.catch.err (/srv/index.js:22:14)
at bound (domain.js:301:14)
at runBound (domain.js:314:12)
at tryCatcher (/srv/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/srv/node_modules/bluebird/js/release/promise.js:517:31)
at Promise._settlePromise (/srv/node_modules/bluebird/js/release/promise.js:574:18)
at Promise._settlePromise0 (/srv/node_modules/bluebird/js/release/promise.js:619:10)
at Promise._settlePromises (/srv/node_modules/bluebird/js/release/promise.js:695:18)
at _drainQueueStep (/srv/node_modules/bluebird/js/release/async.js:138:12)
at _drainQueue (/srv/node_modules/bluebird/js/release/async.js:131:9)
at Async._drainQueues (/srv/node_modules/bluebird/js/release/async.js:147:5)
at Immediate.Async.drainQueues (/srv/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:810:20)
at tryOnImmediate (timers.js:768:5)
at processImmediate [as _immediateCallback] (timers.js:745:5)
【问题讨论】:
-
如果您有解决方案,您应该将其添加为答案,而不是将其放在您的问题中。
-
哦...,对不起,我会添加它作为答案然后
标签: android json firebase google-cloud-functions google-places-api