为了账号安全,请及时绑定邮箱和手机立即绑定

从 c# 的 firebase 实时数据库中删除条目

从 c# 的 firebase 实时数据库中删除条目

C#
四季花海 2021-10-09 14:09:47
我正在尝试从 c# 应用程序的 firebase 实时数据库中删除子条目。我无法在 firebase 文档中找到任何合适的方法。请帮忙。PS:我是firebase的新手
查看完整描述

2 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

遵循 DRY(不要重复自己)原则,每次看到被重用的代码时,您都可以而且应该重构它。


至于你的代码,我要做的第一件事是创建一个函数来接收新的fireposition. 比如说:


void ChangeFirePositionAndRecalculate (int newValue) {

    fireposition.z += newValue;

    temp = VoxelPlayEnvironment.instance.GetVoxel(fireposition);

    checkAirRadius(temp, fireposition);

}

而不是调用:


fireposition.z -= 2;

temp = VoxelPlayEnvironment.instance.GetVoxel(fireposition);

checkAirRadius(temp, fireposition);

您可以致电:


ChangeFirePositionAndRecalculate (-2);

ChangeFirePositionAndRecalculate (1);

但是,话又说回来,干。例如,您可以创建一个包含所有这些位置的数组:


public int [] positions;

这甚至允许您fireposition直接从编辑器更改。考虑到这一点,您现在可以运行:


for (int i = 0; i < position.lenght; i++) {

    ChangeFirePositionAndRecalculate (positions [i]);

}

你可以计算其余的。这只是我会做的一些事情。


[编辑] 我忘了提到在创建方法时,使用 CamelCase,我注意到您的某些方法使用但checkAirRadius没有使用。


查看完整回答
反对 回复 2021-10-09
?
catspeake

TA贡献1111条经验 获得超0个赞

RemoveValueAsync 怎么样?这里:


DatabaseReference.RemoveValueAsync


就像


DatabaseReference rootReference = FirebaseDatabase.DefaultInstance.RootReference;

DatabaseReference childToRemove = rootReference.Child("your child path");


childToRemove.RemoveValueSync().ContinueWith(

            (task) =>

            {

                if (task.IsCanceled || task.IsFaulted) Debug.Log("Fail");

                else if (task.IsCompleted) Debug.Log("Success");

            });


查看完整回答
反对 回复 2021-10-09
  • 2 回答
  • 0 关注
  • 151 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信