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