【发布时间】:2019-02-18 18:02:53
【问题描述】:
这是我的场景。我有一个 POJO 类,我们称之为 Car,声明如下:
public class Plan{
private String id;
private String userId;
private List< String > pictures;
}
在该类中,List 图片应该具有指向我实际上传图片的 Firebase 存储的链接。由于 Firebase 函数的异步根,我在执行此操作时遇到问题。 首先,该图片列表具有图像的本地路径,因为我不希望用户在完成将记录添加到 Firebase 数据库所需的所有步骤之前上传任何内容。所以,我只是保存图像的本地路径。但是,一旦将数据保存到云端,我当然需要将这些图像实际上传到 Firebase 存储并更新 Firebase 数据库中的相应字段。
我一直在尝试做这样的事情:
public void saveToDB(){
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = database.getReference().child( "cars" );
databaseReference.push().setValue( this, new DatabaseReference.CompletionListener(){
@Override
public void onComplete( @Nullable DatabaseError databaseError, @NonNull DatabaseReference databaseReference ){
if( databaseError != null ){
for( String imagePath : pictures ){
final DatabaseReference picReference = FirebaseDatabase.getInstance().getReference()
.child( "cars" )
.child( databaseReference.getKey() )
.child( "pictures" );
storageReference.putFile( Uri.fromFile( new File( imagePath ) ) )
.addOnSuccessListener( new OnSuccessListener< UploadTask.TaskSnapshot >(){
@Override
public void onSuccess( UploadTask.TaskSnapshot taskSnapshot ){
picReference.child( "0" )
.setValue( taskSnapshot.getMetadata().getPath() );
}
} );
}
}
}
} );
}
我应该如何做才能上传所有图片并更新 Firebase 数据库中的所有字段?
【问题讨论】:
标签: firebase firebase-realtime-database firebase-storage