【问题标题】:Firebase Database Table to link to image in Firebase StorageFirebase 数据库表链接到 Firebase 存储中的图像
【发布时间】:2018-02-04 06:53:24
【问题描述】:

我正在尝试创建一个将图像引用存储在 Firebase 存储中的表!图片正在上传并存储在 Firebase Storage 中,但我无法创建表以在我的数据库中引用它

这是我的代码:

private async void UploadPhoto()
    {

        if (filePAth != null)
        {
            progressDialog = new ProgressDialog(this);
            progressDialog.SetTitle("Uploading...");
            progressDialog.Window.SetType(Android.Views.WindowManagerTypes.SystemAlert);
            progressDialog.Show();

            var images = storageRef.Child("images/" + Guid.NewGuid().ToString());
            images.PutFile(filePAth)
                .AddOnProgressListener(this)
                .AddOnSuccessListener(this)
                .AddOnFailureListener(this);
        }


    }

public async void OnSuccess(Java.Lang.Object result)
    {
        //get the logged on user so we know who made the category
        var user = FirebaseAuth.Instance.CurrentUser;

        //Link the photo in storage to database reference 
        try
        {
            var newImageDetails = storageRef.Child("images");
            Photo photos = new Photo();
            photos.categoryId = newImageDetails.Name;
            photos.photoId = newImageDetails.Name;
            photos.tagName = addTag.Text;

            if (user != null)
            {
                var uid = user.Uid;
                //set the users id to the category
                photos.uid = uid;
            }

            var firebase = new FirebaseClient(FirebaseURL);
            var item = await firebase.Child("photos").PostAsync(photos);
        }

        catch (System.Exception e)
        {

        }

        progressDialog.Dismiss();
        Toast.MakeText(this, "Successfully uploaded image", 
        ToastLength.Short).Show();
    }

当我使用断点进行测试时,代码显示 try catch 块中的项目为空?

我正在尝试获取新上传图片的参考!

【问题讨论】:

    标签: c# firebase xamarin firebase-realtime-database firebase-storage


    【解决方案1】:

    将添加图像 url 的代码移至图像引用的成功侦听器中的 firebaseDB,因为只有在上传数据后,成功的 firebase 才会为您提供 url。

    目前您获取链接的代码不会等待文件上传然后获取网址

    【讨论】:

    • 我试过这个但是当涉及到 var newImageDetails = FirebaseStorage.Instance.Reference;它的 null 并跳过其余的代码?有没有办法获得这张新上传的图片的参考?
    • 新上传文件的引用在 onSuccessListener 方法中给出,从那里你可以实际上传文件的 url 到 firebasedb
    • 我试过用这个:var newImageDetails = storageRef.Child("images");但它没有给我我想要的信息?你知道获取图片参考的代码是什么吗?
    猜你喜欢
    • 2021-07-12
    • 2020-08-09
    • 2019-01-06
    • 2020-10-15
    • 2020-02-29
    • 2018-08-23
    • 1970-01-01
    • 1970-01-01
    • 2020-12-18
    相关资源
    最近更新 更多