java - 为什么列出未插入 Firebase 实时数据库
问题描述
我创建了一个应用程序,我想将一些图像存储在 Firebase 存储中,这工作正常,这些图像已上传,但我想将它们的路径保存在数据库中并且不插入这些值。
让我告诉你我做了什么:
我没有向您展示整个功能。只有指向我的问题的代码。
List<String> picturesUrls = new ArrayList<String>(); //This is declared globaly
buttonSigningUp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
uploadFile(mProfilePic,"profilePicture");
uploadFile(mIdPhoto,"idPicture");
uploadFile(mCriminalRecord,"criminalRecordPicture");
final List<String> pictureUrls = picturesUrls;
mFirebaseAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if(task.isSuccessful()) {
final CarrierUser carrierUser;
carrierUser = new CarrierUser(
pictureUrls
);
FirebaseDatabase.getInstance().getReference("User")
.child(FirebaseAuth.getInstance().getCurrentUser().getUid()).setValue(carrierUser).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if(task.isSuccessful()) {
Toast.makeText(SignupCarrier.this,"Your request has been sent for approval", Toast.LENGTH_LONG).show();
sendEmail(email, fullname);
openLogin();
}
}
});
}
}
});
}
});
上传文件功能:
private void uploadFile(Uri path,String forWho) {
if(path != null) {
StorageReference fileReference = mStorageRef.child(editemail.getText().toString()+"-"+forWho+"-"+System.currentTimeMillis()+"."+getFileExtension(path));
mUploadTask = fileReference.putFile(path)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
picturesUrls.add(taskSnapshot.getUploadSessionUri().toString());
}
})
.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Toast.makeText(SignupCarrier.this, e.getMessage(),Toast.LENGTH_LONG).show();
}
});
}
}
和对象:
import java.util.List;
public class CarrierUser {
public List<String> picturesUrls;
public CarrierUser() {
}
public CarrierUser(List<String> picturesUrls) {
this.picturesUrls = picturesUrls;
}
}
我确实有另一个值和字段,但是它们被插入了,只有这个带有路径的列表没有。当我向该列表添加路径时,也许我做错了什么,但我无法弄清楚到底是什么问题。你能帮帮我吗?非常感谢。
解决方案
推荐阅读
- ios - 带有儿童语音的 iOS 文本到语音框架
- scala - Int96Value 到日期字符串
- c++ - QColorDialog::getColor 函数获取 RGB 值并转换为 Hex
- javascript - 普通 javascript 项目的 webpack 和 babel 配置失败
- android - 对 web 和 android 应用程序呈现不同的响应
- angular - 升级 ag-grid 角度版本
- bash - 防止使用 GitHub 时将大文本文件添加到提交
- c++ - 可以像在其他编译器中的 Microsoft C 中那样使用类型化或类型名声明构造函数吗?
- java - Android Intent 地图数据被覆盖
- airflow - Apache - Airflow 1.10.1 不开始工作