尝试将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中的实时数据库的主要内容,如果未能解决你的问题,请参考以下文章
Azure 上的 Syncfusion PdfViewerControl