我需要在Firebase实时数据库上设置一个值。
这是我的数据库组织:
class Beispiel_3
{
int value = 0;
public void Execute_Threads()
{
// why is the out put wrong when i ise the varibale "value" here?
//===============================================================
while (true)
{
Monitor.Enter(this);
value++;
if (value > 20)
break;
Console.WriteLine("Zahl = {0} | Thread = {1}", value, Thread.CurrentThread.GetHashCode().ToString());
Monitor.Exit(this);
}
}
public void Execute_MainThread()
{
Thread thread1, thread2;
thread1 = new Thread(Execute_Threads);
thread2 = new Thread(Execute_Threads);
thread1.Start();
thread2.Start();
Console.ReadLine();
}
static void Main(string[] args)
{
Beispiel_3 bsp3 = new Beispiel_3();
bsp3.Execute_MainThread();
}
我将此代码段写入并可以正常工作:
Users:
U20180422:
ID: U20180422
Name: "Jason"
Surname: "Smith"
Address: "4198 Norma Avenue"
Age: "30"
creation date: "04/22/2018"
U20180311: ...
U20180304: ...
U20180215: ...
...
但是以这种方式删除了存在的数据,并且路径中仅存在account_validated状态。所以我想我必须先检索所有已经拥有的数据,然后将它们与新数据一起发送到数据库。
这在我的代码中不起作用:
<script language="javascript">
//this retrieves from the form of registration the ID of the user
var userId = document.getElementById("searchfield").value;
// Initialize Firebase
var config = {
//my configurations
};
firebase.initializeApp(config);
console.log(firebase);
var database = firebase.database();
var ref = database.ref('Users/' + userId);
var data = {
Account_validated = "OK"
}
ref.set(data)
</script>
答案 0 :(得分:1)
要仅更新您在数据中指定的键,请使用update
:
var data = {
Account_validated: "OK"
}
ref.update(data)
这只会更新Account_validated
下的ref
键,而其他子属性保持不变。
答案 1 :(得分:0)
您看到什么错误?
乍一看,您的for循环中有错别字:
for (var i=0; i < value.lenght; i++)
您输入的长度错误,因此value.lenght
将解析为undefined
,执行将跳过循环。