我试图在一个在App Engine(Google Cloud Platform)上通信的Servlet上使用Firebase Admin。我之所以使用Servlet,是因为我需要生成一个令牌来验证我对正在使用的另一个API的访问。
有人在servlet上使用Firebase时有过这种成功的历史吗?
App Engine SDK
com.google.appengine:appengine-java-sdk:1.9.50
com.google.appengine:appengine-api-1.0-sdk:1.9.54
在GET中,我使用令牌访问Merchant API。
String mToken = gateway.clientToken().generate();
JSONObject jsonObject = new JSONObject();
jsonObject.put("nonce", mToken);
resp.getWriter().println(jsonObject.toString());
内部的POST Firebase管理完全特权。
FileInputStream serviceAccount = new FileInputStream("/WEB-INF/...json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://MyProject.firebaseio.com/")
.build();
FirebaseApp.initializeApp(options);
具有事务的Firebase数据库引用
DatabaseReference ref = FirebaseDatabase
.getInstance()
.getReference("price");
ref.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String res = (String) dataSnapshot.getValue();
try {
TransactionRequest request = new TransactionRequest()
.amount(new BigDecimal(res)) //Res doesn't show any error but it also doesn't work
.paymentMethodNonce(nonce)
.options()
.submitForSettlement(true)
.storeInVaultOnSuccess(true)
.done();
Result<Transaction> result = gateway.transaction().sale(request);
多谢了。
Firebase Java Admin SDK经常在servlet中使用。您将需要使用手动缩放的实例来部署到App Engine上。Firebase数据库客户机启动长时间运行的线程,因此无法对自动缩放的实例进行操作(新的GAE java8运行时在这方面似乎更加宽松,但我现在无法确认这一点)。
我建议您对每个应用程序只调用FirebaseApp.InitializeApp()
一次,最好是在ServletContextListener
中。那么在servlet中,您应该能够像现在这样执行事务。
我是android新手,我能够在kotlin中为我的应用程序设置firebase。如果我在Nexus 5X API 27 emulator中运行该应用程序,我就能够获取数据库,但当我在实际设备三星S5(Google play Services V 12.5.29,android V 5.0)中运行该应用程序时,我无法获得addValueEventListener回调。 Gradle文件: 我知道这
我试图制作一个跨平台的JavaFX应用程序,它在Windows和OSX机器上工作得很好,但在Linux上不行。 jar是在Intellij思想中使用基本的JavaFX配置构建的。 有人帮忙吗?
我正在自学servlet,找到了一些非常好的教程,并在Eclipse Neon EE中取得了巨大成功。(非常基本的servlet,只提供一个简单的静态网页) 在安装Eclipse Neon EE之前,我安装了Tomcat standalone,并对其进行了测试,得到了regulat apache Tomcat页面。我找到的教程还指导我如何在Eclipse中设置tomcat服务器。他们还向我展示了如
与/user/login?_format=json完全相同的POST在Postman中不起作用(错误403禁止),但在curl中使用相同的参数可以正常工作。 这个Curl的工作原理是:Curl--header“content-type:application/json”--request POST--data“{”name“:”bobo“,”pass“:”xxx“}”http://[domain]
服务器是Glassfish 错误404页找不到或您没有连接到网络 您没有连接到网络 结果应该是好的+名称+文件路径
问题内容: 如果我在Spring bean的私有方法上有一个@Transactional -annotation,该注释有什么作用吗? 如果注释位于公共方法上,则它将起作用并打开一个事务。 问题答案: 问题不是私有的还是公共的,问题是:如何调用它以及你使用哪种AOP实现! 如果你使用(默认)Spring Proxy AOP,则仅当调用通过代理时,才会考虑Spring提供的所有AOP功能(如)。-如