保存对象后立即在Firebase中获取保存的密钥

时间:2017-01-08 04:51:15

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

我是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中创建存储文件夹,以便将这些图像保存到该创建的文件夹中。

1 个答案:

答案 0 :(得分:2)

DatabaseReference newDatabaseRef = ref.child("Advertisements").push(); StorageReference newStorageRef = mStorageReference.child("advertisement").child(newRef.getKey()).child(uri.getLastPathSegment()); 是一个纯客户端操作,它返回对统计上保证唯一的新位置的引用。因此,您可以先运行它并从中获取密钥,然后根据该密钥创建存储引用:

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

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

{{1}}