首先,我对Firebase是新手:)
MCVE:
public void addImageOnClick(final View view) {
final Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(intent, 123);
}
@Override
protected void onActivityResult(final int requestCode, final int resultCode, final Intent intent) {
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == 123) {
save("id1", "name1", intent.getData());
}
}
private void save(final String id, final String name, final Uri imageUri) {
final Map<String, Object> item = new HashMap<>();
item.put("id", id);
item.put("name", name);
FirebaseStorage.getInstance()
.getReference("items")
.child(id)
.putFile(imageUri)
.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(final Task<UploadTask.TaskSnapshot> task) throws Exception {
return task.getResult()
.getMetadata()
.getReference()
.getDownloadUrl();
}
})
.continueWith(new Continuation<Uri, Void>() {
@Override
public Void then(final Task<Uri> task) throws Exception {
item.put("image", task.getResult().toString());
FirebaseFirestore.getInstance()
.collection("items")
.document(id)
.set(item);
return null;
}
})
.continueWith(new Continuation<Void, Void>() {
@Override
public Void then(final Task<Void> task) throws Exception {
Toast.makeText(MainActivity.this, String.valueOf(task.isSuccessful()), Toast.LENGTH_LONG).show();
return null;
}
});
}
这实际上并不是一个可以用单个API解决的“琐碎的情况”。
您在这里处理的是两种不同的产品--云存储和FireStore。它们都有自己的、完全独立的API和存储数据的方法。如果您选择的话,这些区域可以单独使用,也可以一起使用。既然您已经选择将它们一起使用(这很棒!),那么您仍然必须编写代码来独立处理它们,同时还要使用您想出的一些方案将它们粘合在一起。看起来你知道自己在做什么。不会变得更简单的。
问题内容: Java是我选择的编程语言之一。尽管将应用程序分发给最终用户,但我总是遇到问题。 为用户提供JAR并不总是像我想要的那样友好,并且使用Java WebStart要求我维护Web服务器。 分发Java应用程序的最佳方法是什么?如果Java应用程序需要在用户计算机上安装工件,该怎么办?有没有好的Java安装/打包系统? 问题答案: 有多种解决方案,取决于你的发行要求。 只是用一个jar。这
这并不困难,但它让我质疑spring auth服务器是最好的选择,还是我应该使用Keycloak?
我试图在我的create-react-app项目中包含一些CSS。CSS来自第三方NPM包,因此位于node_modules目录中。 我试过:
我有一个可以很好地并行化的任务,所以我想使用多个线程来加速我的程序。但是,这并不像创建线程并让它们运行那么简单。线程必须重复执行某个任务,中间有中断,即伪代码如下所示: 这种情况非常频繁,准确地说是每秒60次。这就是为什么每次创建新线程都太慢了。我尝试用每个线程的状态变量(运行、暂停、停止)以及带有条件变量的类似事件的构造或轮询机制来解决这个问题。 这两个都只给了我大约两倍的速度,这并不像我想象的
为了让这个布局正常工作,我已经挣扎了好几个小时。 这是我的代码: 每个片段都是一个简单的RelativeLayout(都有相同的视图): 现在我想让它像这样工作: > 1) 无嵌套layout_weight 2)完全没有嵌套(例如嵌套2个第一个片段等) 3)在视图呈现后,不使用代码以编程方式完成。 在我看来,最简洁、可读性最强的方法是将片段1和片段2的方向设置为水平,将片段3设置为垂直,但它不起作
我有一个Wildfly 10 ear应用程序(在服务器容器中运行),它需要能够发布到另一个Wildfly服务器上托管的远程队列。为此,我将这个jar从wildfly\bin\client文件夹复制到ear的lib文件夹中。效果很好。 但是现在,在正式打包之后,当我启动Wildfly和应用程序时,我收到一条错误消息。。。关于这个jar的清单文件。 设置应用程序以使各种类装入器都能找到这个jar的最佳