Я делаю это руководство связь, и я не могу вызвать setValueAsync, я получаю сообщение об ошибке. Не удается разрешить метод setValueAsync в «DatabaseReference». Я видел, что могу использовать его в начале, когда я установил String, но я не знаю, как это может мне помочь. Спасибо всем.
Мой код:
public class MessageMembersList extends Fragment implements View.OnClickListener {
private Button btnConnectToServer;
FirebaseAuth mAuth;
FirebaseUser user;
String curentName;
String curentLastName;
String curentEmail;
String Name;
String LastName;
String Email;
public Users(String Name, String LastName, String Email) {
this.Name = Name;
this.LastName = LastName;
this.Email = Email;
}
public void onViewCreated(View view, Bundle savedInstanceState) {
btnConnectToServer = (Button) getView().findViewById(R.id.btnConnectToServer);
mAuth = FirebaseAuth.getInstance();
btnConnectToServer.setOnClickListener(this);
user = mAuth.getCurrentUser();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference().child("No server").child(user.getUid());
myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot datasnapshot) {
curentName = (String) datasnapshot.child("name").getValue().toString();
curentLastName = (String) datasnapshot.child("lastName").getValue().toString();
curentEmail = (String) datasnapshot.child("email").getValue().toString();
txt1.setText(Name);
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
}
Часть ошибки setValueAsync (не удается разрешить метод setValueAsync в «DatabaseReference»). У пользователей есть ошибка, но я не буду говорить об этом в этом вопросе.
@Override
public void onClick(View view) {
switch (view.getId()){
case R.id.btnConnectToServer:
connectedToServer = false;
WifiManager wifiManager = (WifiManager) getActivity().getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiInfo info = wifiManager.getConnectionInfo();
String ssid = info.getSSID();
serverName = ssid;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference().child(ssid);
myRef.child(user.getUid()).setValueAsync(new Users(curentName,curentLastName,curentEmail));
break;
}
}
Метод setValueAsync()
является частью SDK администратора Firebase и работает ли нет в Android. Если вам нужно добавить значение в базу данных реального времени во фрагменте Android, вы должны использовать Android SDK Fireabse и использовать метод setValue()
, как описано в официальной документации для запись данных.
Нет, если вы используете толкать(), вы получаете случайное значение. Если не хотите этого, то просто используйте ref.child("Name").setValue("Tom")
, верно?
Но если я использую setValue(), я получаю случайное имя для значения. как -MzxnO08F4QyQTYlsBDG: Том, но я хочу имя: Том