我可以将图像保存到我的firebase存储中,但是在存储中,没有什么可以告诉我上传照片的用户的ID。在我的应用程序中,用户可以上传博客照片,并且就此而言,更新的每张照片应分别具有用户的ID和博客的密钥。因此,我很容易分别为每个博客获取图像。我怎样才能实现这一目标?
这是我保存图像的方式
public void OnClick(View v)
{
Intent intent = new Intent();
intent.SetType("image/*");
intent.SetAction(Intent.ActionPick);
StartActivityForResult(Intent.CreateChooser(intent, "Select Image"), PICK_IMAGE_REQUEST);
}
protected override void OnActivityResult(int requestCode, [GeneratedEnum] Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
try{
Bitmap bitmap = MediaStore.Images.Media.GetBitmap(this.ContentResolver, data.Data);
using (MemoryStream stream = new MemoryStream())
{
bitmap.Compress(Bitmap.CompressFormat.Jpeg,100,stream);
byte[] array = stream.ToArray();
imageViewDrop.SetImageBitmap(bitmap);
}
if(data.Data != null){
pd = new ProgressDialog(this);
pd.SetTitle("Uploading");
pd.Show();
StorageReference images = storageRef.Child("images");
images.PutFile(data.Data).AddOnSuccessListener(this);
images.PutFile(data.Data).AddOnProgressListener(this);
}
else {
}
imageViewDrop.SetImageBitmap(bitmap);
}
catch (Java.Lang.Exception e){
}
}
public void OnSuccess(Java.Lang.Object result)
{
pd.Dismiss();
}
public void OnProgress(Java.Lang.Object snapshot)
{
}
答案 0 :(得分:0)
您可以使用用户Uid
为每位用户创建存储空间参考。
我认为storageRef
中的StorageReference images = storageRef.Child("images");
表示FirebaseStorage.Instance.Reference
,然后首先检查当前用户是这样的:
FirebaseAuth mAuth = FirebaseAuth.Instance;
FirebaseUser user = mAuth.CurrentUser;
如果user为null,我们当然需要进行身份验证,但如果它不为null,则先创建一个用户引用,然后在此引用下创建" images"或者"博客"等等......例如:
FirebaseStorage storage = FirebaseStorage.Instance;
//create child reference
StorageReference storageRef = storage.Reference;
var userRef = storageRef.Child(user.Uid);
var imageRef = userRef.Child("images");