イメージをFirebaseストレージに保存できますが、ストレージには写真をアップロードしたユーザーのIDを教えてもらえません。私のアプリでは、ユーザーはブログ用の写真をアップロードすることができます。更新されたすべての写真は、ユーザーのIDとブログのキーをそれぞれ持っている必要があります。だから、私はそれぞれのブログごとに画像を取り出すのは簡単だろう。どうすればこれを達成できますか?認証ID-XamarinでイメージをFirebaseに保存する
これは、私はあなたが各ユーザーのストレージ内の参照を作成するために、ユーザーのUid
を使用することができます
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)
{
}