簡體   English   中英

如何從列表中獲取密鑰<object>在 Firebase 在 Xamarin.Forms 中?<div id="text_translate"><p> I am programming in Xamarin.Forms, I am also using the FirebaseDatabase [dot] net Nuget I have the following method, in connection to my Firebase Realtime Database, which sends a List.</p><pre> public static async Task&lt;bool&gt; PostDetallePedido(List&lt;AgregarCarrito&gt; carrito) { try { var result = await firebase.Child("DetallePedidos").Child(Preferences.Get("idOrder", string.Empty)).PostAsync(carrito); result2 = result.Key; var keyTable = new KeyClass() { keyU = result2, orderId = Preferences.Get("idOrder", string.Empty) }; await firebase.Child("keyTable").Child(Preferences.Get("idOrder", string.Empty)).PostAsync(keyTable); return true; } catch (Exception e) { Debug.WriteLine($"Error:{e}"); return false; } }</pre><p> 我的數據庫填充如下<a href="https://i.stack.imgur.com/pBxxr.png" rel="nofollow noreferrer">圖1</a></p><p> 使用前面的代碼,我可以獲得唯一 ID,但我仍然不知道如何獲取以自動增量方式生成的值</p><pre>-M7B6xMB19uodzf-C71H | -0 | -1</pre><p> <strong>編輯:</strong></p><pre> public static async Task&lt;List&lt;AgregarCarrito&gt;&gt; GetDetailByUser(int id) { try { var key = await GetKey(id); var value = (await firebase.Child("DetallePedidos").Child(Convert.ToString(id)).Child(key.keyU).OnceAsync&lt;AgregarCarrito&gt;()).Select(item =&gt; new AgregarCarrito { orderId = item.Object.orderId, ProductName = item.Object.ProductName, CustomerId = item.Object.CustomerId, Price = item.Object.Price, TotalAmount = item.Object.TotalAmount, ProductId = item.Object.ProductId, Qty = item.Object.Qty, imageUrl = item.Object.imageUrl, Valor = item.Object.Valor }).ToList(); return value; } catch (Exception e) { Debug.WriteLine($"Error:{e}"); return null; } }</pre><p> 我創建了一個使用 orderId 返回鍵值的方法,但我仍然無法訪問列表的值,在這種情況下,這將是發送列表時以自動增量方式生成的對象</p><p><a href="https://i.stack.imgur.com/ENEas.png" rel="nofollow noreferrer">圖 2</a></p></div></object>

[英]How can I get a key from a List <object> in Firebase in Xamarin.Forms?

I am programming in Xamarin.Forms, I am also using the FirebaseDatabase [dot] net Nuget I have the following method, in connection to my Firebase Realtime Database, which sends a List.

public static async Task<bool> PostDetallePedido(List<AgregarCarrito> carrito)
    {
        try
        {


            var result = await firebase
            .Child("DetallePedidos")
            .Child(Preferences.Get("idOrder", string.Empty))
            .PostAsync(carrito);

            result2 = result.Key;

            var keyTable = new KeyClass()
            {
                keyU = result2,
                orderId = Preferences.Get("idOrder", string.Empty)
            };

            await firebase
            .Child("keyTable")
            .Child(Preferences.Get("idOrder", string.Empty))
            .PostAsync(keyTable);

            return true;
        }
        catch (Exception e)
        {
            Debug.WriteLine($"Error:{e}");
            return false;
        }
    }

我的數據庫填充如下圖1

使用前面的代碼,我可以獲得唯一 ID,但我仍然不知道如何獲取以自動增量方式生成的值

-M7B6xMB19uodzf-C71H
| -0
| -1

編輯:

   public static async Task<List<AgregarCarrito>> GetDetailByUser(int id)
    {
        try

        {
            var key = await GetKey(id);

            var value = (await firebase
            .Child("DetallePedidos")
            .Child(Convert.ToString(id))
            .Child(key.keyU)
            .OnceAsync<AgregarCarrito>()).Select(item =>
            new AgregarCarrito
            {
                orderId = item.Object.orderId,
                ProductName = item.Object.ProductName,
                CustomerId = item.Object.CustomerId,
                Price = item.Object.Price,
                TotalAmount = item.Object.TotalAmount,
                ProductId = item.Object.ProductId,
                Qty = item.Object.Qty,
                imageUrl = item.Object.imageUrl,
                Valor = item.Object.Valor

            }).ToList();

            return value;

        }
        catch (Exception e)
        {
            Debug.WriteLine($"Error:{e}");
            return null;
        }
    }

我創建了一個使用 orderId 返回鍵值的方法,但我仍然無法訪問列表的值,在這種情況下,這將是發送列表時以自動增量方式生成的對象

圖 2

據我所知,您只想檢索您之前插入的數據集。

var postResult = await firebase
        .Child("DetallePedidos")
        .Child(Preferences.Get("idOrder", string.Empty))
        .PostAsync(carrito);

// there is also a `GetAsync` method on your firebase database
var result = await firebase
        .Child("DetallePedidos")
        .Child(Preferences.Get("idOrder", string.Empty))
        .GetAsync(postResult.YOURKEY); // i have no clue how to access the key in your case

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM