作者:Annfeliz | 来源:互联网 | 2023-02-08 16:13
从版本12.0.0开始,您可以更简单的方式调用云功能
在您的添加中添加以下行 build.gradle
implementation 'com.google.firebase:firebase-functions:16.3.0'
并使用以下代码
FirebaseFunctions.getInstance() // Optional region: .getInstance("europe-west1")
.getHttpsCallable("myCoolFunction")
.call(optionalObject)
.addOnFailureListener {
Log.wtf("FF", it)
}
.addOnSuccessListener {
toast(it.data.toString())
}
您可以安全地在主线程上使用它.回调也在主线程上触发.
1> Dima Rostopi..:
从版本12.0.0开始,您可以更简单的方式调用云功能
在您的添加中添加以下行 build.gradle
implementation 'com.google.firebase:firebase-functions:16.3.0'
并使用以下代码
FirebaseFunctions.getInstance() // Optional region: .getInstance("europe-west1")
.getHttpsCallable("myCoolFunction")
.call(optionalObject)
.addOnFailureListener {
Log.wtf("FF", it)
}
.addOnSuccessListener {
toast(it.data.toString())
}
您可以安全地在主线程上使用它.回调也在主线程上触发.
2> Frank van Pu..:
这里有一个firebaser
更新:有是现在一个客户端SDK,使您可以直接从支持的设备叫云功能.有关示例和最新更新,请参阅Dima的答案.
原答案如下......
@ looptheloop88是正确的.没有用于从Android应用调用 Google Cloud Functions的SDK .我肯定会提交功能请求.
但目前这意味着您应该使用从Android调用HTTP端点的常规方法:
用android发出HTTP请求
Android:AsyncTask发出HTTP GET请求?
Http获取使用Android HttpURLConnection
Android的HTTP触发器文档
3> Sir Codesalo..:
现在不可能,但正如在另一个答案中所提到的,您可以使用来自Android 的HTTP请求触发功能.如果这样做,使用身份验证机制保护您的功能非常重要.这是一个基本的例子:
'use strict';
var functiOns= require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.helloWorld = functions.https.onRequest((request, response) => {
console.log('helloWorld called');
if (!request.headers.authorization) {
console.error('No Firebase ID token was passed');
response.status(403).send('Unauthorized');
return;
}
admin.auth().verifyIdToken(request.headers.authorization).then(decodedIdToken => {
console.log('ID Token correctly decoded', decodedIdToken);
request.user = decodedIdToken;
response.send(request.body.name +', Hello from Firebase!');
}).catch(error => {
console.error('Error while verifying Firebase ID token:', error);
response.status(403).send('Unauthorized');
});
});
要在Android中获取令牌,您应该使用此功能,然后将其添加到您的请求中,如下所示:
cOnnection= (HttpsURLConnection) url.openConnection();
...
connection.setRequestProperty("Authorization", token);