gpt4 book ai didi

android - 火力地堡机器人 : Retrieving and checking entry to database on button click

转载 作者:行者123 更新时间:2023-11-30 00:16:58 25 4
gpt4 key购买 nike

我是 Android 和 Firebase 编程的新手。我只是在构建一个小应用程序,到目前为止它运行良好。但是当谈到 Firebase 连接时,我很挣扎。我遵循了所有基本步骤并尝试了很多,但无法弄清楚。

所以我的问题是:我有一个数据库,它存储 ID:ID --> 12345、23456,...,这些 ID 有多个子 ID(实际上其他 ID:ID --> 23456 --> 23456-ValueA , 23456-ValueB, ...)。我想做什么:

  1. 如果单击按钮,应用程序会检查先前输入的字符串是否是 ID 的子字符串,因此如果 enteredstring 匹配任何 IDx(例如用户输入 ValueX("23456"),它会检查ID' 的任何 child 是否等于 23456)
  2. 如果是这样,它应该检查之前输入的另一个字符串是否是此 IDx 的子字符串(用户输入 ValueY("88888") 检查 23456 Value-A("88888") 是否等于 ValueY)。
  3. 如果为真,则应显示 Value-B("Ape") 的值

我将数据库作为图片附上。 link to the image

感谢您的帮助,非常感谢干杯

...
public class trackid extends AppCompatActivity {

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference IDRef = rootRef.child("ID");

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_trackid);

// findViewById
Button ButtondisplayB = (Button) findViewById(R.id.ButtondisplayB);
EditText ValueX = (EditText) findViewById(R.id.ValueX);
EditText ValueY = (EditText) findViewById(R.id.ValueY);

// Capture if button is clicked
ButtondisplayB.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {

// HERES WHERE MY QUESTIONS START:
// if ValueX.getText().toString() is in IDRef.child()
//if true: ValueY.getText().toString() equals IDRef.child(ValueX).child(Value-A)
//if true: display IDRef.child(Value-B)

最佳答案

IDRef.child(ValueX.getText().toString())addListenerForSingleValueEvent(new com.google.firebase.database.ValueEventListener() {
@Override
public void onDataChange(com.google.firebase.database.DataSnapshot dataSnapshot) {

if(!dataSnapshot.exists()){
Log.d("Missing","This id is not present in the database");
}else{
String aFromDb = dataSnapshot.child("A-value").getValue(String.class);
if(ValueY.getText().toString.equals(aFromDb)){
String bFromDb = dataSnapshot.child("B-value").getValue(String.class);
Log.d("B value is:",bFromDb)''
}else{
Log.d("not equal","A value not equal to ValueY");
}
}
}

@Override
public void onCancelled(DatabaseError databaseError) {

Log.d("Error",".....");
}
});

您可以将 ListenerForSingleValueEvent 更改为 ValueEventListener。ListenerForSingleValueEvent 只检查数据库一次。

关于android - 火力地堡机器人 : Retrieving and checking entry to database on button click,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47105481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com