C#Firebase Restful Post生成唯一密钥

时间:2018-09-02 18:10:11

标签: c# firebase firebase-realtime-database

下面是我用来对Firebase数据库执行POST请求的代码。 我该怎么做,以允许子序列POST请求按升序排列?我不希望Firebase自动生成唯一ID。

可以在此处查看示例。 enter image description here

public void postEachFirebaseMessage(string dbcolName)
    {
        var json = Newtonsoft.Json.JsonConvert.SerializeObject(new
        {
            user = "UserNameValue",
            message = "MessageValue",
        });
        var request = WebRequest.CreateHttp(@"" + config.BasePath + dbcolName + ".json?auth=" + config.AuthSecret);
        request.Method = "POST";
        request.ContentType = "application/json";
        var buffer = Encoding.UTF8.GetBytes(json);
        request.ContentLength = buffer.Length;
        request.GetRequestStream().Write(buffer, 0, buffer.Length);
        var response = request.GetResponse();
        json = (new StreamReader(response.GetResponseStream())).ReadToEnd();
    }

1 个答案:

答案 0 :(得分:0)

  

我不希望Firebase自动生成唯一ID。

如果您不希望Firebase为您自动生成唯一密钥,则可以生成自己的唯一密钥,然后PUT数据到该完整URL。像这样:

var request = WebRequest.CreateHttp(@"" + config.BasePath + dbcolName + "/yourOwnUniqueKey" + ".json?auth=" + config.AuthSecret);
request.Method = "PUT";

但是如前所述:您将需要确保自己的密钥是唯一的。这是一个完全有效的方案,但是您将不得不自己编写用于生成唯一密钥的代码。

如果您想知道Firebase为什么不简单使用诸如012之类的键,我建议阅读此博客文章:https://firebase.googleblog.com/2014/04/best-practices-arrays-in-firebase.html