【问题标题】:Get saved key in Firebase as soon as object is saved保存对象后立即在 Firebase 中获取已保存的密钥
【发布时间】:2017-01-08 04:51:15
【问题描述】:

我是 Firebase 的新手,到目前为止我已经使用 Firebase。就像保存对象和检索对象一样。我想知道如何获取保存的对象的密钥。在休眠中,它在保存对象时返回键。我想知道如何在 Firebase 中实现这一点。以下是我的代码,但到目前为止我得到了 nullpointerexception。

 ref.child("Advertisements").push().setValue(mobileAdd);

 ref.addValueEventListener(new ValueEventListener() {
 @Override
 public void onDataChange(DataSnapshot dataSnapshot) {


 StorageReference storageReference = mStorageReference.child("advertisement").child(dataSnapshot.getKey()).child(uri.getLastPathSegment());
 storageReference.putFile(uri);
 }

 @Override
 public void onCancelled(FirebaseError firebaseError) {

 }
 });

PS:我希望该密钥在 Firebase 的存储中创建一个文件夹,以便我可以将这些图像保存到该创建的文件夹中。

【问题讨论】:

    标签: android firebase firebase-realtime-database firebase-storage


    【解决方案1】:

    DatabaseReference.push() 是一个纯粹的客户端操作,它返回一个对新位置的引用,该位置在统计上保证是唯一的。所以你可以先运行它并从中获取密钥,然后根据该密钥创建一个存储引用:

    DatabaseReference newDatabaseRef = ref.child("Advertisements").push();
    StorageReference newStorageRef = mStorageReference.child("advertisement").child(newRef.getKey()).child(uri.getLastPathSegment());
    

    然后最后将值设置到数据库并将文件放入存储:

    newDatabaseRef.setValue(mobileAdd);
    newStorageRef.putFile(uri);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-28
      • 2016-09-21
      • 1970-01-01
      • 2021-11-09
      • 1970-01-01
      • 2017-04-24
      • 1970-01-01
      • 2014-10-23
      相关资源
      最近更新 更多