我知道这个问题对许多用户来说可能看起来很模糊,但我会简单地详细说明这个问题。我正在尝试通过android构建一个对象识别应用程序。相机拍摄的照片将被发送到firebase数据库,并从那里通过python脚本获取照片并完成图像识别。所以我的问题是我如何编写一个应用程序代码,该应用程序将图像从应用程序推送到数据库,例如用户(任何应用程序用户)捕获的图像的键将按顺序排列:
image1,image2,image3 ....
这意味着如果'a'用户捕获图像,照片将上传到数据库,并带有“image 1 ”键。用户'b'拍摄照片后,将使用“image 2 ”键按下图像。请注意,应用程序可以由多个用户同时使用。那么关于我应该如何在android中实现这个的任何建议?
答案 0 :(得分:2)
首先,对用户进行身份验证,然后获取每个用户的id
,然后以更容易在以后检索的方式存储在数据库中。
DatabaseReference ref =
FirebaseDatabase.getInstance().getReference("users");
Firebase user=FirebaseAuth.getInstance().getCurrentUser();
//to send to database
ref.child("uid").setValue(user.getUID());
现在userid
位于users
下,然后在userid
下添加图片。
所以例子:
{
"users":{
"userid":{
"name": "peter"
"image": "link_from_storage"
}
}
}
这样,每次用户捕获图像时,他都会有一个用户ID。
现在,对于图像,您必须将其发送到firebase storage
,然后从那里获取链接并将其存储在数据库中。
示例:
StorageReference filepath=mStorage.child(uri.getLastPathSegment());
filepath.putFile(uri).addOnSuccessListener(new
OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
String downloaduri=taskSnapshot.getDownloadUrl().toString();
基本上是第一行,您将图像添加到firebase存储中。然后您执行一个侦听器从存储中获取图像url
并将其放入downloaduri
。
然后在数据库中添加图像: -
ref.child("image").setValue(downloaduri);
希望这有帮助!
答案 1 :(得分:1)
我上次使用firebase的时间大约是8-10个月,所以我不记得语法了。
当用户上传图片时,您可以使用Firebase的could storage将图片上传到云端。您可以相应地生成ID(key
),并将其保存在数据库中,并将该图像的引用保存为value
key
。您可以阅读here如何做到这一点。
幸运的是,Firebase functions可以与云存储一起使用来访问和处理图像。您只需阅读Cloud storage triggers。
答案 2 :(得分:1)
如果我没错,你必须保持这样的事情