尝试将syncfusion json数据绑定到Firebase中的实时数据库

Posted

技术标签:

【中文标题】尝试将syncfusion json数据绑定到Firebase中的实时数据库【英文标题】:Trying to bind syncfusion json data to realtime database in Firebase 【发布时间】:2021-08-16 04:39:04 【问题描述】:

我正在尝试使用 Syncfusion (blazor) 中的调度程序工具。我正在绑定到实时 Firebase 中的远程数据。

如果我以正确的格式导入数据,如下所示 (ID=0),我可以在调度程序中看到它并且一切正常。如果我手动导入另一个 ID= 2,它将继续正常工作。

调度程序接口分配的随机 ID -MajbecDwqY04jsocuS2 扰乱了订单并停止工作。我将如何确保 id 编号递增 1 才能正常工作。

<div class="col-lg-12 control-section">
    <div class="schedule-wrapper">
        <SfSchedule TValue="ScheduleData.AppointmentData" Width="100%" Height="650px" @bind-SelectedDate="@CurrentDate" Readonly="false">
            <ScheduleEventSettings TValue="ScheduleData.AppointmentData">
                <SfDataManager Url="https://firebasekey.europe-west1.firebasedatabase.app/scheduler.json" Adaptor="@Syncfusion.Blazor.Adaptors.WebApiAdaptor"></SfDataManager>
            </ScheduleEventSettings>
        </SfSchedule>
    </div>
</div>


 public class AppointmentData
        
            public int Id  get; set; 
            public string Subject  get; set; 
            public string Location  get; set; 
            public string Description  get; set; 
            public DateTime StartTime  get; set; 
            public DateTime EndTime  get; set; 
            public Nullable<bool> IsAllDay  get; set; 
            public string CategoryColor  get; set; 
            public string RecurrenceRule  get; set; 
            public Nullable<int> RecurrenceID  get; set; 
            public Nullable<int> FollowingID  get; set; 
            public string RecurrenceException  get; set; 
            public string StartTimezone  get; set; 
            public string EndTimezone  get; set; 
        

【问题讨论】:

【参考方案1】:

您可以按 id 值排序并获取添加的最后一个元素并将其递增以将其用作下一个键。

执行此操作的云函数的示例代码:


const lastItemSnap = await firebase
  .database()
  .ref("scheduler")
  .orderByChild("id")
  .limitToLast(1)
  .once("value");

const lastKey = lastItemSnap.key;

//Increment key and use it for the next element
const newKey = parseInt(lastKey) + 1;

await firebase.database().ref(`scheduler/$newKey`).set( test: "your data" );


确保按id 排序,因为键将作为字符串排序。

【讨论】:

以上是关于尝试将syncfusion json数据绑定到Firebase中的实时数据库的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS 将 json 绑定到表单输入

无法将 JSON 数据绑定到 KendoUI Grid

Azure 上的 Syncfusion PdfViewerControl

如何将 JSON 数据绑定到我的类属性

如何将json返回的数据绑定到asp.net中的jquery gridview?

如何将json返回的数据绑定到asp.net中的jquery gridview?