Java 如何在android应用程序中为每个请求提供一个顺序ID?

Java 如何在android应用程序中为每个请求提供一个顺序ID?,java,android,firebase,firebase-realtime-database,Java,Android,Firebase,Firebase Realtime Database,我知道这个问题对许多用户来说可能是模棱两可的,但我将尝试简要阐述这个问题。我正试图通过android构建一个对象识别应用程序。摄像头捕获的照片将发送到firebase数据库,然后通过python脚本从那里获取照片,并完成图像识别。因此,我的问题是如何为将图像从应用程序推送到数据库的应用程序编写代码,例如用户(任何应用程序用户)捕获的图像密钥将按顺序: 图像1、图像2、图像3 这意味着,如果“a”用户捕获了一幅图像,则将使用键“image1”将照片上载到数据库。当用户“b”拍照后,将使用键“ima

我知道这个问题对许多用户来说可能是模棱两可的,但我将尝试简要阐述这个问题。我正试图通过android构建一个对象识别应用程序。摄像头捕获的照片将发送到firebase数据库,然后通过python脚本从那里获取照片,并完成图像识别。因此,我的问题是如何为将图像从应用程序推送到数据库的应用程序编写代码,例如用户(任何应用程序用户)捕获的图像密钥将按顺序:

图像1、图像2、图像3


这意味着,如果“a”用户捕获了一幅图像,则将使用键“image1”将照片上载到数据库。当用户“b”拍照后,将使用键“image2”按下图像。请注意,应用程序可以由多个用户同时使用。那么,关于如何在android中实现这一点,有什么建议吗?

我上次使用firebase大约是在8-10个月前,所以我不记得语法了

当用户上传图像时,您可以使用Firebase将图像上传到云。您可以相应地生成一个id(
),并将其保存在数据库中,并将该图像的引用作为该
键的
。你可以阅读如何做到这一点

幸运的是,Firebase可以与云存储一起使用来访问和处理图像。你只需要了解一下

如果我没弄错的话,你必须保持这样的状态

  • 在firebase文件系统中放置文件夹图像
  • 图片名称、上传用户名(如果需要,可根据您的需要)和上传时间戳的占位符
  • 现在,首先获取带有时间戳的图像名称,然后基于时间戳获取图像文件

  • 首先,对用户进行身份验证,然后获取每个用户的
    id
    ,并将其存储在数据库中,以便以后检索

    像这样:-

    DatabaseReference ref = 
    FirebaseDatabase.getInstance().getReference("users");
    
    Firebase user=FirebaseAuth.getInstance().getCurrentUser();
    
    //to send to database
    ref.child("uid").setValue(user.getUID());
    
    现在在
    users
    下有
    userid
    ,然后在
    userid
    下添加一个图像

    例如:

      {
      "users":{
         "userid":{
             "name": "peter"
             "image": "link_from_storage"
      }
     }
    }
    
    这样,每次用户捕获图像时,他都会有一个用户ID。 现在,对于图像,您必须将其发送到
    firebase存储
    ,然后从那里获取链接并将其存储在数据库中

    例如:

      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();
    

    希望这有帮助

    你应该避免任何这样的要求,它只会成为一个问题,因为你的规模。生成id将成为您的瓶颈。使用UUID。那个么我如何在Python中决定从数据库中获取哪个图像呢?因为python提供的有关firebase DownVoter的功能非常少,你能给我一个理由来否决这个问题吗?@HrishikeshKulkarni检查我的答案,我认为这会对你有所帮助,但没有办法通过android处理firebase云存储(我的错误,拼写错误。我想说的是,没有办法通过“Python”处理firebase云。我完全同意您的回答@Peter Haddad。但问题是通过Python检索这些上传的图像。Python只提供读取相应键的特定值的功能。您建议将UID作为键(我们通常在安卓系统中是这样做的)。那么我如何确定在Python中读取哪个“键”(因为Python不会知道任何用户id)?你不能循环使用用户id吗?@HrishikeshKulkarni,或者你想要每个图像的随机id吗?不,我希望图像id像这样是image1、image2、image3。如果我没有错的话,在Python中不可能循环使用相应父级的子级。检查这个答案可能会对你有所帮助@HrishikeshKulkarni
    ref.child("image").setValue(downloaduri);